├── README.md ├── WeRedis.iml ├── pom.xml ├── weredis-common ├── pom.xml ├── src │ ├── main │ │ └── kotlin │ │ │ └── com │ │ │ └── luoboduner │ │ │ └── weredis │ │ │ └── common │ │ │ └── Hello.kt │ └── test │ │ └── kotlin │ │ └── com │ │ └── luoboduner │ │ └── weredis │ │ └── common │ │ └── HelloTest.kt └── weredis-common.iml ├── weredis-core ├── pom.xml ├── src │ ├── main │ │ └── kotlin │ │ │ └── com │ │ │ └── luoboduner │ │ │ └── weredis │ │ │ └── core │ │ │ └── Hello.kt │ └── test │ │ └── kotlin │ │ └── com │ │ └── luoboduner │ │ └── weredis │ │ └── core │ │ └── HelloTest.kt └── weredis-core.iml ├── weredis-desktop ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── luoboduner │ │ │ │ └── weredis │ │ │ │ └── desktop │ │ │ │ ├── ui │ │ │ │ ├── ConstantsUI.java │ │ │ │ ├── Init.java │ │ │ │ ├── MainWindow.form │ │ │ │ └── MainWindow.java │ │ │ │ └── util │ │ │ │ └── Config.java │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── luoboduner │ │ │ │ └── weredis │ │ │ │ └── desktop │ │ │ │ └── Hello.kt │ │ ├── lib │ │ │ ├── beautyeye_lnf.jar │ │ │ ├── darcula.jar │ │ │ └── weblaf-complete-1.28.jar │ │ └── resources │ │ │ ├── icon │ │ │ ├── add.png │ │ │ ├── add@2x.png │ │ │ ├── clock.png │ │ │ ├── clock@2x.png │ │ │ ├── fromVCS.png │ │ │ ├── fromVCS@2x.png │ │ │ ├── logo-md.png │ │ │ ├── pause.png │ │ │ ├── pause@2x.png │ │ │ ├── remove.png │ │ │ ├── remove@2x.png │ │ │ ├── run.png │ │ │ ├── run@2x.png │ │ │ ├── slogan.jpg │ │ │ ├── suspend.png │ │ │ ├── suspend@2x.png │ │ │ └── weixin-qrcode.png │ │ │ └── logback.xml │ └── test │ │ └── kotlin │ │ └── com │ │ └── luoboduner │ │ └── weredis │ │ └── desktop │ │ └── HelloTest.kt └── weredis-desktop.iml └── weredis-plugin-idea ├── pom.xml ├── src ├── main │ ├── java │ │ └── HelloWorldWindow.java │ └── resources │ │ └── META-INF │ │ └── plugin.xml └── test │ └── kotlin │ └── com │ └── luoboduner │ └── weredis │ └── common │ └── HelloTest.kt └── weredis-plugin-idea.iml /README.md: -------------------------------------------------------------------------------- 1 | # WeRedis 2 | 3 | > 一款redis图形化操作工具,包含IDEA插件和桌面版 4 | 5 | ### 注:开发中,暂不可用 -------------------------------------------------------------------------------- /WeRedis.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | com.luoboduner.weredis 8 | luoboduner-weredis 9 | 1.0 10 | pom 11 | 12 | 13 | weredis-common 14 | weredis-core 15 | weredis-plugin-idea 16 | weredis-desktop 17 | 18 | 19 | 20 | 21 | 22 | org.apache.maven.plugins 23 | maven-compiler-plugin 24 | 3.6.1 25 | 26 | 1.8 27 | 1.8 28 | UTF-8 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /weredis-common/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 4.0.0 6 | 7 | com.luoboduner.weredis.common 8 | weredis-common 9 | 1.0-SNAPSHOT 10 | jar 11 | 12 | weredis-common 13 | 14 | 15 | UTF-8 16 | 1.1.51 17 | 4.12 18 | 19 | 20 | 21 | 22 | org.jetbrains.kotlin 23 | kotlin-stdlib 24 | ${kotlin.version} 25 | 26 | 27 | org.jetbrains.kotlin 28 | kotlin-test-junit 29 | ${kotlin.version} 30 | test 31 | 32 | 33 | junit 34 | junit 35 | ${junit.version} 36 | test 37 | 38 | 39 | 40 | 41 | src/main/kotlin 42 | src/test/kotlin 43 | 44 | 45 | 46 | org.apache.maven.plugins 47 | maven-compiler-plugin 48 | 3.6.1 49 | 50 | 1.8 51 | 1.8 52 | UTF-8 53 | 54 | 55 | 56 | org.jetbrains.kotlin 57 | kotlin-maven-plugin 58 | ${kotlin.version} 59 | 60 | 61 | compile 62 | compile 63 | 64 | compile 65 | 66 | 67 | 68 | test-compile 69 | test-compile 70 | 71 | test-compile 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /weredis-common/src/main/kotlin/com/luoboduner/weredis/common/Hello.kt: -------------------------------------------------------------------------------- 1 | package com.luoboduner.weredis.common 2 | 3 | fun main(args: Array) { 4 | println("Hello, World") 5 | } 6 | 7 | -------------------------------------------------------------------------------- /weredis-common/src/test/kotlin/com/luoboduner/weredis/common/HelloTest.kt: -------------------------------------------------------------------------------- 1 | package com.luoboduner.weredis.common 2 | 3 | import org.junit.Test 4 | import kotlin.test.assertEquals 5 | 6 | class HelloTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /weredis-common/weredis-common.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /weredis-core/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 4.0.0 6 | 7 | com.luoboduner.weredis.core 8 | luoboduner-weredis-core 9 | 1.0-SNAPSHOT 10 | jar 11 | 12 | com.luoboduner.weredis.core luoboduner-weredis-core 13 | 14 | 15 | UTF-8 16 | 1.1.51 17 | 4.12 18 | 19 | 20 | 21 | 22 | org.jetbrains.kotlin 23 | kotlin-stdlib 24 | ${kotlin.version} 25 | 26 | 27 | org.jetbrains.kotlin 28 | kotlin-test-junit 29 | ${kotlin.version} 30 | test 31 | 32 | 33 | junit 34 | junit 35 | ${junit.version} 36 | test 37 | 38 | 39 | 40 | 41 | src/main/kotlin 42 | src/test/kotlin 43 | 44 | 45 | 46 | org.apache.maven.plugins 47 | maven-compiler-plugin 48 | 3.6.1 49 | 50 | 1.8 51 | 1.8 52 | UTF-8 53 | 54 | 55 | 56 | org.jetbrains.kotlin 57 | kotlin-maven-plugin 58 | ${kotlin.version} 59 | 60 | 61 | compile 62 | compile 63 | 64 | compile 65 | 66 | 67 | 68 | test-compile 69 | test-compile 70 | 71 | test-compile 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /weredis-core/src/main/kotlin/com/luoboduner/weredis/core/Hello.kt: -------------------------------------------------------------------------------- 1 | package com.luoboduner.weredis.core 2 | 3 | fun main(args: Array) { 4 | println("Hello, World") 5 | } 6 | 7 | -------------------------------------------------------------------------------- /weredis-core/src/test/kotlin/com/luoboduner/weredis/core/HelloTest.kt: -------------------------------------------------------------------------------- 1 | package com.luoboduner.weredis.core 2 | 3 | import org.junit.Test 4 | import kotlin.test.assertEquals 5 | 6 | class HelloTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /weredis-core/weredis-core.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /weredis-desktop/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 4.0.0 6 | 7 | com.luoboduner.weredis.desktop 8 | luoboduner-weredis-desktop 9 | 1.0-SNAPSHOT 10 | jar 11 | 12 | luoboduner-weredis-desktop 13 | 14 | 15 | UTF-8 16 | 1.1.51 17 | 4.12 18 | 1.2.1 19 | 3.1.1 20 | 3.9 21 | 22 | 23 | 24 | 25 | org.jetbrains.kotlin 26 | kotlin-stdlib 27 | ${kotlin.version} 28 | 29 | 30 | org.jetbrains.kotlin 31 | kotlin-test-junit 32 | ${kotlin.version} 33 | test 34 | 35 | 36 | junit 37 | junit 38 | ${junit.version} 39 | test 40 | 41 | 42 | ch.qos.logback 43 | logback-classic 44 | ${logback.version} 45 | 46 | 47 | com.xiaoleilu 48 | hutool-all 49 | ${hutool-all.version} 50 | 51 | 52 | com.opencsv 53 | opencsv 54 | ${opencsv.version} 55 | 56 | 57 | com.darcula 58 | darcula-lnf 59 | 1.0 60 | 61 | 62 | 63 | com.beautyeye 64 | beautyeye-lnf 65 | 1.0 66 | 67 | 68 | 69 | com.weblaf 70 | weblaf-lnf 71 | 1.2.8 72 | 73 | 74 | 75 | 76 | src/main/kotlin 77 | src/test/kotlin 78 | 79 | 80 | 81 | org.apache.maven.plugins 82 | maven-compiler-plugin 83 | 3.6.1 84 | 85 | 1.8 86 | 1.8 87 | UTF-8 88 | 89 | 90 | 91 | org.jetbrains.kotlin 92 | kotlin-maven-plugin 93 | ${kotlin.version} 94 | 95 | 96 | compile 97 | compile 98 | 99 | compile 100 | 101 | 102 | 103 | test-compile 104 | test-compile 105 | 106 | test-compile 107 | 108 | 109 | 110 | 111 | 112 | org.apache.maven.plugins 113 | maven-install-plugin 114 | 2.5.2 115 | 116 | 117 | install-weblaf 118 | clean 119 | 120 | ${basedir}/src/main/lib/weblaf-complete-1.28.jar 121 | default 122 | com.weblaf 123 | weblaf-lnf 124 | 1.2.8 125 | jar 126 | true 127 | 128 | 129 | install-file 130 | 131 | 132 | 133 | install-beautyeye 134 | clean 135 | 136 | ${basedir}/src/main/lib/beautyeye_lnf.jar 137 | default 138 | com.beautyeye 139 | beautyeye-lnf 140 | 1.0 141 | jar 142 | true 143 | 144 | 145 | install-file 146 | 147 | 148 | 149 | install-darcula 150 | clean 151 | 152 | ${basedir}/src/main/lib/darcula.jar 153 | default 154 | com.darcula 155 | darcula-lnf 156 | 1.0 157 | jar 158 | true 159 | 160 | 161 | install-file 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | -------------------------------------------------------------------------------- /weredis-desktop/src/main/java/com/luoboduner/weredis/desktop/ui/ConstantsUI.java: -------------------------------------------------------------------------------- 1 | package com.luoboduner.weredis.desktop.ui; 2 | 3 | import java.awt.Image; 4 | import java.awt.Toolkit; 5 | 6 | /** 7 | * UI相关的常量 8 | * 9 | * @author rememberber(https://github.com/rememberber) 10 | */ 11 | public class ConstantsUI { 12 | 13 | /** 14 | * 软件名称,版本 15 | */ 16 | public final static String APP_NAME = "WeRedis"; 17 | public final static String APP_VERSION = "v_1.2.0_170831"; 18 | 19 | /** 20 | * 主窗口图标 21 | */ 22 | public final static Image IMAGE_ICON = Toolkit.getDefaultToolkit() 23 | .getImage(MainWindow.class.getResource("/icon/logo-md.png")); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /weredis-desktop/src/main/java/com/luoboduner/weredis/desktop/ui/Init.java: -------------------------------------------------------------------------------- 1 | package com.luoboduner.weredis.desktop.ui; 2 | 3 | import com.alee.laf.WebLookAndFeel; 4 | import com.luoboduner.weredis.desktop.util.Config; 5 | import com.sun.java.swing.plaf.motif.MotifLookAndFeel; 6 | import com.sun.java.swing.plaf.windows.WindowsLookAndFeel; 7 | import com.xiaoleilu.hutool.log.Log; 8 | import com.xiaoleilu.hutool.log.LogFactory; 9 | import org.apache.commons.lang3.StringUtils; 10 | import org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper; 11 | 12 | import javax.swing.UIManager; 13 | import javax.swing.plaf.FontUIResource; 14 | import javax.swing.plaf.metal.MetalLookAndFeel; 15 | import javax.swing.plaf.nimbus.NimbusLookAndFeel; 16 | import java.awt.Dimension; 17 | import java.awt.Font; 18 | import java.awt.Toolkit; 19 | import java.util.Enumeration; 20 | 21 | /** 22 | * 初始化类 23 | * Created by rememberber(https://github.com/rememberber) on 2017/6/15. 24 | */ 25 | public class Init { 26 | 27 | private static final Log logger = LogFactory.get(); 28 | 29 | // 配置文件管理器对象 30 | public static Config configer = Config.getInstance(); 31 | 32 | 33 | /** 34 | * 设置全局字体 35 | */ 36 | public static void initGlobalFont() { 37 | 38 | String lowDpiKey = "lowDpiInit"; 39 | Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); //得到屏幕的尺寸 40 | if (screenSize.width <= 1366 && StringUtils.isEmpty(configer.getProps(lowDpiKey))) { 41 | configer.setFontSize(15); 42 | configer.setProps(lowDpiKey, "true"); 43 | configer.save(); 44 | } 45 | 46 | Font fnt = new Font(configer.getFont(), Font.PLAIN, configer.getFontSize()); 47 | FontUIResource fontRes = new FontUIResource(fnt); 48 | for (Enumeration keys = UIManager.getDefaults().keys(); keys.hasMoreElements(); ) { 49 | Object key = keys.nextElement(); 50 | Object value = UIManager.get(key); 51 | if (value instanceof FontUIResource) 52 | UIManager.put(key, fontRes); 53 | } 54 | } 55 | 56 | /** 57 | * 其他初始化 58 | */ 59 | public static void initOthers() { 60 | // 设置滚动条速度 61 | } 62 | 63 | /** 64 | * 初始化look and feel 65 | */ 66 | public static void initTheme() { 67 | 68 | try { 69 | switch (configer.getTheme()) { 70 | case "BeautyEye": 71 | BeautyEyeLNFHelper.launchBeautyEyeLNF(); 72 | UIManager.put("RootPane.setupButtonVisible", false); 73 | break; 74 | case "weblaf": 75 | UIManager.setLookAndFeel(new WebLookAndFeel()); 76 | break; 77 | case "系统默认": 78 | UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 79 | break; 80 | case "Windows": 81 | UIManager.setLookAndFeel(WindowsLookAndFeel.class.getName()); 82 | break; 83 | case "Nimbus": 84 | UIManager.setLookAndFeel(NimbusLookAndFeel.class.getName()); 85 | break; 86 | case "Metal": 87 | UIManager.setLookAndFeel(MetalLookAndFeel.class.getName()); 88 | break; 89 | case "Motif": 90 | UIManager.setLookAndFeel(MotifLookAndFeel.class.getName()); 91 | break; 92 | case "Darcula(推荐)": 93 | default: 94 | UIManager.setLookAndFeel("com.bulenkov.darcula.DarculaLaf"); 95 | } 96 | } catch (Exception e) { 97 | logger.error(e); 98 | } 99 | 100 | } 101 | 102 | } 103 | -------------------------------------------------------------------------------- /weredis-desktop/src/main/java/com/luoboduner/weredis/desktop/ui/MainWindow.form: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 |
88 | -------------------------------------------------------------------------------- /weredis-desktop/src/main/java/com/luoboduner/weredis/desktop/ui/MainWindow.java: -------------------------------------------------------------------------------- 1 | package com.luoboduner.weredis.desktop.ui; 2 | 3 | import com.xiaoleilu.hutool.log.Log; 4 | import com.xiaoleilu.hutool.log.LogFactory; 5 | 6 | import javax.swing.JButton; 7 | import javax.swing.JFrame; 8 | import javax.swing.JPanel; 9 | import javax.swing.JSplitPane; 10 | import javax.swing.JTree; 11 | import java.awt.Dimension; 12 | import java.awt.Toolkit; 13 | 14 | /** 15 | * @author rememberber(https://github.com/rememberber) 16 | */ 17 | public class MainWindow { 18 | public static MainWindow mainWindow; 19 | private static Log logger = LogFactory.get(); 20 | public static JFrame frame; 21 | private JPanel mainPanel; 22 | private JSplitPane splitPane; 23 | private JPanel panelLeft; 24 | private JPanel panelRight; 25 | private JButton button1; 26 | private JButton button2; 27 | private JTree tree1; 28 | 29 | public MainWindow() { 30 | 31 | } 32 | 33 | public static void main(String[] args) { 34 | logger.info("main start"); 35 | 36 | Init.initTheme(); 37 | Init.initGlobalFont(); //统一设置字体 38 | 39 | frame = new JFrame(ConstantsUI.APP_NAME); 40 | frame.setIconImage(ConstantsUI.IMAGE_ICON); 41 | 42 | //得到屏幕的尺寸 43 | Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 44 | frame.setBounds((int) (screenSize.width * 0.1), (int) (screenSize.height * 0.08), (int) (screenSize.width * 0.8), 45 | (int) (screenSize.height * 0.8)); 46 | 47 | Dimension preferSize = new Dimension((int) (screenSize.width * 0.8), 48 | (int) (screenSize.height * 0.8)); 49 | frame.setPreferredSize(preferSize); 50 | 51 | mainWindow = new MainWindow(); 52 | 53 | frame.setContentPane(mainWindow.mainPanel); 54 | frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 55 | frame.pack(); 56 | frame.setVisible(true); 57 | 58 | // 添加事件监听 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /weredis-desktop/src/main/java/com/luoboduner/weredis/desktop/util/Config.java: -------------------------------------------------------------------------------- 1 | package com.luoboduner.weredis.desktop.util; 2 | 3 | import com.xiaoleilu.hutool.log.Log; 4 | import com.xiaoleilu.hutool.log.LogFactory; 5 | import com.xiaoleilu.hutool.setting.dialect.Props; 6 | 7 | import java.io.File; 8 | import java.io.FileOutputStream; 9 | import java.io.IOException; 10 | 11 | /** 12 | * 配置管理 13 | * Created by rememberber(https://github.com/rememberber) on 2017/6/14. 14 | */ 15 | public class Config { 16 | 17 | private static final Log logger = LogFactory.get(); 18 | 19 | private File file; 20 | 21 | private Props props; 22 | 23 | private static Config ourInstance = new Config(); 24 | 25 | private String msgName; 26 | 27 | private String previewUser; 28 | 29 | private int memberCount; 30 | 31 | private String memberSql; 32 | 33 | private String memberFilePath; 34 | 35 | private int pushSuccess; 36 | 37 | private int pushFail; 38 | 39 | private long pushLastTime; 40 | 41 | private long pushLeftTime; 42 | 43 | private int totalRecord; 44 | 45 | private int totalPage; 46 | 47 | private int totalThread; 48 | 49 | private int recordPerPage; 50 | 51 | private int pagePerThread; 52 | 53 | private boolean dryRun; 54 | 55 | private boolean radioStartAt; 56 | 57 | private String textStartAt; 58 | 59 | private boolean radioStopAt; 60 | 61 | private String textStopAt; 62 | 63 | private boolean radioPerDay; 64 | 65 | private String textPerDay; 66 | 67 | private boolean radioPerWeek; 68 | 69 | private String textPerWeekWeek; 70 | 71 | private String textPerWeekTime; 72 | 73 | private String wechatAppId; 74 | 75 | private String wechatAppSecret; 76 | 77 | private String wechatToken; 78 | 79 | private String wechatAesKey; 80 | 81 | private String aliServerUrl; 82 | 83 | private String aliAppKey; 84 | 85 | private String aliAppSecret; 86 | 87 | private String aliSign; 88 | 89 | private String mysqlUrl; 90 | 91 | private String mysqlDatabase; 92 | 93 | private String mysqlUser; 94 | 95 | private String mysqlPassword; 96 | 97 | private String theme; 98 | 99 | private String font; 100 | 101 | private int fontSize; 102 | 103 | public static Config getInstance() { 104 | return ourInstance; 105 | } 106 | 107 | private Config() { 108 | file = new File("config/config.properties"); 109 | File configDir = new File("config/"); 110 | if (!file.exists()) { 111 | try { 112 | configDir.mkdirs(); 113 | file.createNewFile(); 114 | originInit(); 115 | } catch (IOException e) { 116 | logger.error(e); 117 | } 118 | } 119 | props = new Props(file); 120 | } 121 | 122 | public void setProps(String key, String value) { 123 | props.setProperty(key, value); 124 | } 125 | 126 | public String getProps(String key) { 127 | return props.getProperty(key); 128 | } 129 | 130 | /** 131 | * 存盘 132 | */ 133 | public void save() { 134 | try { 135 | props.store(new FileOutputStream(file), null); 136 | } catch (IOException e) { 137 | logger.error(e); 138 | } 139 | } 140 | 141 | /** 142 | * 初始化原始数据 143 | */ 144 | private void originInit() { 145 | props = new Props(file); 146 | 147 | props.setProperty("msg.msgName", ""); 148 | props.setProperty("msg.previewUser", ""); 149 | props.setProperty("member.count", "0"); 150 | props.setProperty("member.sql", "SELECT openid FROM"); 151 | props.setProperty("member.filePath", ""); 152 | props.setProperty("push.success", "0"); 153 | props.setProperty("push.fail", "0"); 154 | props.setProperty("push.lastTime", "0"); 155 | props.setProperty("push.leftTime", "0"); 156 | props.setProperty("push.totalRecord", "0"); 157 | props.setProperty("push.totalPage", "0"); 158 | props.setProperty("push.totalThread", "0"); 159 | props.setProperty("push.recordPerPage", "500"); 160 | props.setProperty("push.pagePerThread", "3"); 161 | props.setProperty("push.dryRun", "true"); 162 | props.setProperty("schedule.radioStartAt", "false"); 163 | props.setProperty("schedule.textStartAt", ""); 164 | props.setProperty("schedule.radioStopAt", "false"); 165 | props.setProperty("schedule.textStopAt", ""); 166 | props.setProperty("schedule.radioPerDay", "false"); 167 | props.setProperty("schedule.textPerDay", ""); 168 | props.setProperty("schedule.radioPerWeek", "false"); 169 | props.setProperty("schedule.textPerWeek.week", "一"); 170 | props.setProperty("schedule.textPerWeek.time", ""); 171 | props.setProperty("setting.wechat.appId", ""); 172 | props.setProperty("setting.wechat.AppSecret", ""); 173 | props.setProperty("setting.wechat.token", ""); 174 | props.setProperty("setting.wechat.aesKey", ""); 175 | props.setProperty("setting.ali.serverUrl", ""); 176 | props.setProperty("setting.ali.appKey", ""); 177 | props.setProperty("setting.ali.appSecret", ""); 178 | props.setProperty("setting.ali.sign", ""); 179 | props.setProperty("setting.mysql.url", ""); 180 | props.setProperty("setting.mysql.database", ""); 181 | props.setProperty("setting.mysql.user", ""); 182 | props.setProperty("setting.mysql.password", ""); 183 | props.setProperty("setting.appearance.theme", "Darcula(推荐)"); 184 | props.setProperty("setting.appearance.font", "Microsoft YaHei UI"); 185 | props.setProperty("setting.appearance.fontSize", "18"); 186 | 187 | save(); 188 | } 189 | 190 | public String getMsgName() { 191 | return props.getProperty("msg.msgName"); 192 | } 193 | 194 | public void setMsgName(String msgName) { 195 | props.setProperty("msg.msgName", msgName); 196 | } 197 | 198 | public String getPreviewUser() { 199 | return props.getProperty("msg.previewUser"); 200 | } 201 | 202 | public void setPreviewUser(String previewUser) { 203 | props.setProperty("msg.previewUser", previewUser); 204 | } 205 | 206 | public int getMemberCount() { 207 | return props.getInt("member.count"); 208 | } 209 | 210 | public void setMemberCount(int memberCount) { 211 | props.setProperty("member.count", memberCount); 212 | } 213 | 214 | public String getMemberSql() { 215 | return props.getProperty("member.sql"); 216 | } 217 | 218 | public void setMemberSql(String memberSql) { 219 | props.setProperty("member.sql", memberSql); 220 | } 221 | 222 | public String getMemberFilePath() { 223 | return props.getProperty("member.filePath"); 224 | } 225 | 226 | public void setMemberFilePath(String memberFilePath) { 227 | props.setProperty("member.filePath", memberFilePath); 228 | } 229 | 230 | public int getPushSuccess() { 231 | return props.getInt("push.success"); 232 | } 233 | 234 | public void setPushSuccess(int pushSuccess) { 235 | props.setProperty("push.success", pushSuccess); 236 | } 237 | 238 | public int getPushFail() { 239 | return props.getInt("push.fail"); 240 | } 241 | 242 | public void setPushFail(int pushFail) { 243 | props.setProperty("push.fail", pushFail); 244 | } 245 | 246 | public long getPushLastTime() { 247 | return props.getLong("push.lastTime"); 248 | } 249 | 250 | public void setPushLastTime(long pushLastTime) { 251 | props.setProperty("push.lastTime", pushLastTime); 252 | } 253 | 254 | public long getPushLeftTime() { 255 | return props.getLong("push.leftTime"); 256 | } 257 | 258 | public void setPushLeftTime(long pushLeftTime) { 259 | props.setProperty("push.leftTime", pushLeftTime); 260 | } 261 | 262 | public int getTotalRecord() { 263 | return props.getInt("push.totalRecord"); 264 | } 265 | 266 | public void setTotalRecord(int totalRecord) { 267 | props.setProperty("push.totalRecord", totalRecord); 268 | } 269 | 270 | public int getTotalPage() { 271 | return props.getInt("push.totalPage"); 272 | } 273 | 274 | public void setTotalPage(int totalPage) { 275 | props.setProperty("push.totalPage", totalPage); 276 | } 277 | 278 | public int getTotalThread() { 279 | return props.getInt("push.totalThread"); 280 | } 281 | 282 | public void setTotalThread(int totalThread) { 283 | props.setProperty("push.totalThread", totalThread); 284 | } 285 | 286 | public int getRecordPerPage() { 287 | return props.getInt("push.recordPerPage"); 288 | } 289 | 290 | public void setRecordPerPage(int recordPerPage) { 291 | props.setProperty("push.recordPerPage", recordPerPage); 292 | } 293 | 294 | public int getPagePerThread() { 295 | return props.getInt("push.pagePerThread"); 296 | } 297 | 298 | public void setPagePerThread(int pagePerThread) { 299 | props.setProperty("push.pagePerThread", pagePerThread); 300 | } 301 | 302 | public boolean isDryRun() { 303 | return props.getBool("push.dryRun"); 304 | } 305 | 306 | public void setDryRun(boolean dryRun) { 307 | props.setProperty("push.dryRun", dryRun); 308 | } 309 | 310 | public boolean isRadioStartAt() { 311 | return props.getBool("schedule.radioStartAt"); 312 | } 313 | 314 | public void setRadioStartAt(boolean radioStartAt) { 315 | props.setProperty("schedule.radioStartAt", radioStartAt); 316 | } 317 | 318 | public String getTextStartAt() { 319 | return props.getProperty("schedule.textStartAt"); 320 | } 321 | 322 | public void setTextStartAt(String textStartAt) { 323 | props.setProperty("schedule.textStartAt", textStartAt); 324 | } 325 | 326 | public boolean isRadioStopAt() { 327 | return props.getBool("schedule.radioStopAt"); 328 | } 329 | 330 | public void setRadioStopAt(boolean radioStopAt) { 331 | props.setProperty("schedule.radioStopAt", radioStopAt); 332 | } 333 | 334 | public String getTextStopAt() { 335 | return props.getProperty("schedule.textStopAt"); 336 | } 337 | 338 | public void setTextStopAt(String textStopAt) { 339 | props.setProperty("schedule.textStopAt", textStopAt); 340 | } 341 | 342 | public boolean isRadioPerDay() { 343 | return props.getBool("schedule.radioPerDay"); 344 | } 345 | 346 | public void setRadioPerDay(boolean radioPerDay) { 347 | props.setProperty("schedule.radioPerDay", radioPerDay); 348 | } 349 | 350 | public String getTextPerDay() { 351 | return props.getProperty("schedule.textPerDay"); 352 | } 353 | 354 | public void setTextPerDay(String textPerDay) { 355 | props.setProperty("schedule.textPerDay", textPerDay); 356 | } 357 | 358 | public boolean isRadioPerWeek() { 359 | return props.getBool("schedule.radioPerWeek"); 360 | } 361 | 362 | public void setRadioPerWeek(boolean radioPerWeek) { 363 | props.setProperty("schedule.radioPerWeek", radioPerWeek); 364 | } 365 | 366 | public String getTextPerWeekWeek() { 367 | return props.getProperty("schedule.textPerWeek.week"); 368 | } 369 | 370 | public void setTextPerWeekWeek(String textPerWeekWeek) { 371 | props.setProperty("schedule.textPerWeek.week", textPerWeekWeek); 372 | } 373 | 374 | public String getTextPerWeekTime() { 375 | return props.getProperty("schedule.textPerWeek.time"); 376 | } 377 | 378 | public void setTextPerWeekTime(String textPerWeekTime) { 379 | props.setProperty("schedule.textPerWeek.time", textPerWeekTime); 380 | } 381 | 382 | public String getWechatAppId() { 383 | return props.getProperty("setting.wechat.appId"); 384 | } 385 | 386 | public void setWechatAppId(String wechatAppId) { 387 | props.setProperty("setting.wechat.appId", wechatAppId); 388 | } 389 | 390 | public String getWechatAppSecret() { 391 | return props.getProperty("setting.wechat.AppSecret"); 392 | } 393 | 394 | public void setWechatAppSecret(String wechatAppSecret) { 395 | props.setProperty("setting.wechat.AppSecret", wechatAppSecret); 396 | } 397 | 398 | public String getWechatToken() { 399 | return props.getProperty("setting.wechat.token"); 400 | } 401 | 402 | public void setWechatToken(String wechatToken) { 403 | props.setProperty("setting.wechat.token", wechatToken); 404 | } 405 | 406 | public String getWechatAesKey() { 407 | return props.getProperty("setting.wechat.aesKey"); 408 | } 409 | 410 | public void setWechatAesKey(String wechatAesKey) { 411 | props.setProperty("setting.wechat.aesKey", wechatAesKey); 412 | } 413 | 414 | public String getAliServerUrl() { 415 | return props.getProperty("setting.ali.serverUrl"); 416 | } 417 | 418 | public void setAliServerUrl(String aliServerUrl) { 419 | props.setProperty("setting.ali.serverUrl", aliServerUrl); 420 | } 421 | 422 | public String getAliAppKey() { 423 | return props.getProperty("setting.ali.appKey"); 424 | } 425 | 426 | public void setAliAppKey(String aliAppKey) { 427 | props.setProperty("setting.ali.appKey", aliAppKey); 428 | } 429 | 430 | public String getAliAppSecret() { 431 | return props.getProperty("setting.ali.appSecret"); 432 | } 433 | 434 | public void setAliAppSecret(String aliAppSecret) { 435 | props.setProperty("setting.ali.appSecret", aliAppSecret); 436 | } 437 | 438 | public String getAliSign() { 439 | return props.getProperty("setting.ali.sign"); 440 | } 441 | 442 | public void setAliSign(String aliSign) { 443 | props.setProperty("setting.ali.sign", aliSign); 444 | } 445 | 446 | public String getMysqlUrl() { 447 | return props.getProperty("setting.mysql.url"); 448 | } 449 | 450 | public void setMysqlUrl(String mysqlUrl) { 451 | props.setProperty("setting.mysql.url", mysqlUrl); 452 | } 453 | 454 | public String getMysqlDatabase() { 455 | return props.getProperty("setting.mysql.database"); 456 | } 457 | 458 | public void setMysqlDatabase(String mysqlDatabase) { 459 | props.setProperty("setting.mysql.database", mysqlDatabase); 460 | } 461 | 462 | public String getMysqlUser() { 463 | return props.getProperty("setting.mysql.user"); 464 | } 465 | 466 | public void setMysqlUser(String mysqlUser) { 467 | props.setProperty("setting.mysql.user", mysqlUser); 468 | } 469 | 470 | public String getMysqlPassword() { 471 | return props.getProperty("setting.mysql.password"); 472 | } 473 | 474 | public void setMysqlPassword(String mysqlPassword) { 475 | props.setProperty("setting.mysql.password", mysqlPassword); 476 | } 477 | 478 | public String getTheme() { 479 | return props.getProperty("setting.appearance.theme"); 480 | } 481 | 482 | public void setTheme(String theme) { 483 | props.setProperty("setting.appearance.theme", theme); 484 | } 485 | 486 | public String getFont() { 487 | return props.getProperty("setting.appearance.font"); 488 | } 489 | 490 | public void setFont(String font) { 491 | props.setProperty("setting.appearance.font", font); 492 | } 493 | 494 | public int getFontSize() { 495 | return props.getInt("setting.appearance.fontSize"); 496 | } 497 | 498 | public void setFontSize(int fontSize) { 499 | props.setProperty("setting.appearance.fontSize", fontSize); 500 | } 501 | } 502 | -------------------------------------------------------------------------------- /weredis-desktop/src/main/kotlin/com/luoboduner/weredis/desktop/Hello.kt: -------------------------------------------------------------------------------- 1 | package com.luoboduner.weredis.desktop 2 | 3 | fun main(args: Array) { 4 | println("Hello, World") 5 | } 6 | 7 | -------------------------------------------------------------------------------- /weredis-desktop/src/main/lib/beautyeye_lnf.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/lib/beautyeye_lnf.jar -------------------------------------------------------------------------------- /weredis-desktop/src/main/lib/darcula.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/lib/darcula.jar -------------------------------------------------------------------------------- /weredis-desktop/src/main/lib/weblaf-complete-1.28.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/lib/weblaf-complete-1.28.jar -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/add.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/add@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/add@2x.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/clock.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/clock@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/clock@2x.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/fromVCS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/fromVCS.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/fromVCS@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/fromVCS@2x.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/logo-md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/logo-md.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/pause.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/pause@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/pause@2x.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/remove.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/remove@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/remove@2x.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/run.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/run@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/run@2x.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/slogan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/slogan.jpg -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/suspend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/suspend.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/suspend@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/suspend@2x.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/icon/weixin-qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rememberber/WeRedis/e6e298bf9b84537cb1d84fac868ff743ec2c9ed8/weredis-desktop/src/main/resources/icon/weixin-qrcode.png -------------------------------------------------------------------------------- /weredis-desktop/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 6 | 7 | 8 | 9 | 10 | 11 | ./logs/wechat-push.%d{yyyy-MM-dd}.log 12 | 13 | 14 | %date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /weredis-desktop/src/test/kotlin/com/luoboduner/weredis/desktop/HelloTest.kt: -------------------------------------------------------------------------------- 1 | package com.luoboduner.weredis.desktop 2 | 3 | import org.junit.Test 4 | import kotlin.test.assertEquals 5 | 6 | class HelloTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /weredis-desktop/weredis-desktop.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /weredis-plugin-idea/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 4.0.0 6 | 7 | com.luoboduner.weredis.plugin.idea 8 | weredis-plugin-idea 9 | 1.0-SNAPSHOT 10 | jar 11 | 12 | weredis-plugin-idea 13 | 14 | 15 | UTF-8 16 | 1.1.51 17 | 4.12 18 | 19 | 20 | 21 | 22 | org.jetbrains.kotlin 23 | kotlin-stdlib 24 | ${kotlin.version} 25 | 26 | 27 | org.jetbrains.kotlin 28 | kotlin-test-junit 29 | ${kotlin.version} 30 | test 31 | 32 | 33 | junit 34 | junit 35 | ${junit.version} 36 | test 37 | 38 | 39 | 40 | 41 | src/main/kotlin 42 | src/test/kotlin 43 | 44 | 45 | 46 | org.apache.maven.plugins 47 | maven-compiler-plugin 48 | 3.6.1 49 | 50 | 1.8 51 | 1.8 52 | UTF-8 53 | 54 | 55 | 56 | org.jetbrains.kotlin 57 | kotlin-maven-plugin 58 | ${kotlin.version} 59 | 60 | 61 | compile 62 | compile 63 | 64 | compile 65 | 66 | 67 | 68 | test-compile 69 | test-compile 70 | 71 | test-compile 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /weredis-plugin-idea/src/main/java/HelloWorldWindow.java: -------------------------------------------------------------------------------- 1 | import com.intellij.openapi.project.Project; 2 | import com.intellij.openapi.wm.ToolWindow; 3 | import com.intellij.openapi.wm.ToolWindowFactory; 4 | 5 | import javax.swing.*; 6 | 7 | public class HelloWorldWindow implements ToolWindowFactory { 8 | @Override 9 | public void createToolWindowContent(Project project, ToolWindow toolWindow) { 10 | 11 | JComponent parent = toolWindow.getComponent(); 12 | JPanel panel = new JPanel(); 13 | JLabel label = new JLabel("Hello World!!"); 14 | panel.add(label); 15 | parent.add(panel); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /weredis-plugin-idea/src/main/resources/META-INF/plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | com.your.company.unique.plugin.id 3 | Plugin display name here 4 | 1.0 5 | YourCompany 6 | 7 | 9 | most HTML tags may be used 10 | ]]> 11 | 12 | 14 | most HTML tags may be used 15 | ]]> 16 | 17 | 18 | 19 | 20 | 21 | 23 | 26 | 27 | 28 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /weredis-plugin-idea/src/test/kotlin/com/luoboduner/weredis/common/HelloTest.kt: -------------------------------------------------------------------------------- 1 | package com.luoboduner.weredis.common 2 | 3 | import org.junit.Test 4 | import kotlin.test.assertEquals 5 | 6 | class HelloTest { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /weredis-plugin-idea/weredis-plugin-idea.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | --------------------------------------------------------------------------------