diff --git a/README.md b/README.md
index b09e88a..7d10950 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,6 @@
============
适合里站,表站未知(访问不了~囧)。
-百度网盘:[egdownloader0.55.exe](http://pan.baidu.com/s/1sjmatxr) 下载。
+百度网盘:[egdownloader0.60.exe](http://pan.baidu.com/s/1i3ioXmt) 下载。
![结构](./ui.png)
diff --git a/script/search.js b/script/search.js
index 2b6601d..357cd22 100644
--- a/script/search.js
+++ b/script/search.js
@@ -9,7 +9,7 @@ var mark = {//标志符
date : ['white-space:nowrap">', '
| '],//类型
btUrl : ['', "return popUp('", "', 610, 590)"],//bt地址
- uploader : ['http://exhentai.org/uploader', '/', '">']//上传者
+ uploader : ['http://exhentai.org/uploader', '>', '']//上传者
};
function parseJsonArray(array){
@@ -89,7 +89,7 @@ function parse(source){
}
//上传者
var uploaderTemp = subFromSource(source, mark.uploader[0]);
- task.uploader = unescape(interceptFromSource(uploaderTemp, mark.uploader[1], mark.uploader[2]));
+ task.uploader = interceptFromSource(uploaderTemp, mark.uploader[1], mark.uploader[2]);
tasks.push(task);
source = subFromSource(source, prefix);
i ++;
diff --git a/script/version b/script/version
index 0991f5b..c6f52b4 100644
--- a/script/version
+++ b/script/version
@@ -1 +1 @@
-V.2015.03.25
\ No newline at end of file
+V.2015.03.26
\ No newline at end of file
diff --git a/script/version.properties b/script/version.properties
new file mode 100644
index 0000000..bb91675
--- /dev/null
+++ b/script/version.properties
@@ -0,0 +1,5 @@
+script_create_url=https://raw.githubusercontent.com/dipoo/egdownloader/master/script/createTasks2.js
+script_collect_url=https://raw.githubusercontent.com/dipoo/egdownloader/master/script/collectPicture.js
+script_download_url=https://raw.githubusercontent.com/dipoo/egdownloader/master/script/download.js
+script_search_url=https://raw.githubusercontent.com/dipoo/egdownloader/master/script/search.js
+script_version_url=https://raw.githubusercontent.com/dipoo/egdownloader/master/script/version
\ No newline at end of file
diff --git a/src/org/arong/egdownloader/model/ScriptParser.java b/src/org/arong/egdownloader/model/ScriptParser.java
index b904b18..a6aa056 100644
--- a/src/org/arong/egdownloader/model/ScriptParser.java
+++ b/src/org/arong/egdownloader/model/ScriptParser.java
@@ -263,7 +263,7 @@ public static String[] search(String source, Setting setting) throws ConnectTime
Map param = new HashMap();
param.put("htmlSource", source);
Object result = parseJsScript(param, getSearchScriptFile(setting.getSearchScriptPath()));
- return result.toString().split("\\###");
+ return result == null ? null : result.toString().split("\\###");
}
public static void testScript(String url, JTextArea resultArea, Setting setting, boolean create, boolean collect, boolean download){
diff --git a/src/org/arong/egdownloader/ui/ComponentConst.java b/src/org/arong/egdownloader/ui/ComponentConst.java
index efa88c9..4d2a84e 100644
--- a/src/org/arong/egdownloader/ui/ComponentConst.java
+++ b/src/org/arong/egdownloader/ui/ComponentConst.java
@@ -1,9 +1,12 @@
package org.arong.egdownloader.ui;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
+import java.util.Properties;
import org.arong.egdownloader.spider.WebClient;
import org.arong.egdownloader.ui.window.EgDownloaderWindow;
@@ -60,11 +63,11 @@ public final class ComponentConst {
public static String countHtml;
- public final static String SCRIPT_CREATE_URL = "https://raw.githubusercontent.com/dipoo/egdownloader/master/script/createTask.js";
- public final static String SCRIPT_COLLECT_URL = "https://raw.githubusercontent.com/dipoo/egdownloader/master/script/collectPicture.js";
- public final static String SCRIPT_DOWNLOAD_URL = "https://raw.githubusercontent.com/dipoo/egdownloader/master/script/download.js";
- public final static String SCRIPT_SEARCH_URL = "https://raw.githubusercontent.com/dipoo/egdownloader/master/script/search.js";
- public final static String SCRIPT_VERSION_URL = "https://raw.githubusercontent.com/dipoo/egdownloader/master/script/version";
+ public static String SCRIPT_CREATE_URL = "http://raw.githubusercontent.com/dipoo/egdownloader/master/script/createTask.js";
+ public static String SCRIPT_COLLECT_URL = "http://raw.githubusercontent.com/dipoo/egdownloader/master/script/collectPicture.js";
+ public static String SCRIPT_DOWNLOAD_URL = "http://raw.githubusercontent.com/dipoo/egdownloader/master/script/download.js";
+ public static String SCRIPT_SEARCH_URL = "http://raw.githubusercontent.com/dipoo/egdownloader/master/script/search.js";
+ public static String SCRIPT_VERSION_URL = "http://raw.githubusercontent.com/dipoo/egdownloader/master/script/version";
static{
InputStream s = null;
@@ -97,6 +100,30 @@ public final class ComponentConst {
countHtml = "没有找到" + RESOURCES_PATH + "count.html文件";
}
+ Properties scriptProp = new Properties();
+ try {
+ scriptProp.load(new FileReader("script/version.properties"));
+ if(scriptProp.get("script_create_url") != null){
+ SCRIPT_CREATE_URL = scriptProp.get("script_create_url").toString();
+ }
+ if(scriptProp.get("script_collect_url") != null){
+ SCRIPT_COLLECT_URL = scriptProp.get("script_collect_url").toString();
+ }
+ if(scriptProp.get("script_download_url") != null){
+ SCRIPT_DOWNLOAD_URL = scriptProp.get("script_download_url").toString();
+ }
+ if(scriptProp.get("script_search_url") != null){
+ SCRIPT_SEARCH_URL = scriptProp.get("script_search_url").toString();
+ }
+ if(scriptProp.get("script_version_url") != null){
+ SCRIPT_VERSION_URL = scriptProp.get("script_version_url").toString();
+ }
+ } catch (FileNotFoundException e) {
+
+ } catch (IOException e) {
+
+ }
+
SKIN_ICON.put("add", "_add.png");
SKIN_ICON.put("delete", "_delete.png");
SKIN_ICON.put("setting", "_setting.png");
diff --git a/src/org/arong/egdownloader/ui/table/SearchTasksTable.java b/src/org/arong/egdownloader/ui/table/SearchTasksTable.java
index 7fd6612..5cff0cd 100644
--- a/src/org/arong/egdownloader/ui/table/SearchTasksTable.java
+++ b/src/org/arong/egdownloader/ui/table/SearchTasksTable.java
@@ -92,7 +92,7 @@ public Component getTableCellRendererComponent(JTable table, Object value,
if(column == 0){//类型
tc.setPreferredWidth(105);
tc.setMaxWidth(105);
- JLabel l = new AJLabel("", tasks.get(row).getType() == null ? "" : (tasks.get(row).getType() + ".png"), c, JLabel.LEFT);
+ JLabel l = new AJLabel("", tasks.get(row).getType() == null ? "" : (tasks.get(row).getType().toLowerCase() + ".png"), c, JLabel.LEFT);
return l;
}else if(column == 1){//名称
tc.setPreferredWidth(700);
@@ -111,7 +111,7 @@ public Component getTableCellRendererComponent(JTable table, Object value,
}else if(column == 2){//上传者
tc.setPreferredWidth(100);
tc.setMaxWidth(150);
- final JLabel l = new AJLabel(value.toString(), c, font, JLabel.LEFT);
+ JLabel l = new AJLabel(value.toString(), c, font, JLabel.LEFT);
l.setForeground(uploaderColor);
l.setToolTipText("点击搜索该上传者的上传的漫画");
return l;
diff --git a/src/org/arong/egdownloader/ui/window/InitWindow.java b/src/org/arong/egdownloader/ui/window/InitWindow.java
index 7cc1138..0b48cd1 100644
--- a/src/org/arong/egdownloader/ui/window/InitWindow.java
+++ b/src/org/arong/egdownloader/ui/window/InitWindow.java
@@ -21,7 +21,6 @@
import org.arong.egdownloader.model.Setting;
import org.arong.egdownloader.model.Task;
import org.arong.egdownloader.spider.WebClient;
-import org.arong.egdownloader.spider.WebClientException;
import org.arong.egdownloader.ui.ComponentConst;
import org.arong.egdownloader.ui.swing.AJLabel;
import org.arong.egdownloader.ui.table.TaskingTable;
@@ -107,9 +106,9 @@ public int compare(Task o1, Task o2) {
textLabel.setText(Version.NAME + "-检测远程脚本");
//检测脚本是否发生变化
try {
- scriptVersion = WebClient.postRequest(ComponentConst.SCRIPT_VERSION_URL);
+ scriptVersion = WebClient.getRequestUseJava(ComponentConst.SCRIPT_VERSION_URL, null);
String currentVersion = FileUtil.getTextFromReader(new FileReader("script/version"));
- if(!currentVersion.equals(scriptVersion)){
+ if(scriptVersion != null && !currentVersion.equals(scriptVersion)){
int r = JOptionPane.showConfirmDialog(null, "远程脚本发生变化,是否同步?");
this.toFront();
if(r == JOptionPane.YES_OPTION){
@@ -120,8 +119,6 @@ public int compare(Task o1, Task o2) {
}else{
startMain();
}
- }catch (WebClientException e) {
- startMain();
}catch (SocketTimeoutException e) {
startMain();
}catch (ConnectTimeoutException e) {
diff --git a/src/org/arong/egdownloader/ui/window/SearchComicWindow.java b/src/org/arong/egdownloader/ui/window/SearchComicWindow.java
index df76134..c153f6b 100644
--- a/src/org/arong/egdownloader/ui/window/SearchComicWindow.java
+++ b/src/org/arong/egdownloader/ui/window/SearchComicWindow.java
@@ -102,16 +102,16 @@ public void keyPressed(KeyEvent e) {
optionPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
optionPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(new Color(Integer.parseInt("bababa", 16)), 1), "条件过滤"));
optionPanel.setBounds(6, 55, ComponentConst.CLIENT_WIDTH - 23, 65);
- JCheckBox c1 = new AJCheckBox("DOUJINSHI", Color.BLUE, font, false);
- JCheckBox c2 = new AJCheckBox("MANGA", Color.BLUE, font, false);
- JCheckBox c3 = new AJCheckBox("ARTISTCG", Color.BLUE, font, false);
- JCheckBox c4 = new AJCheckBox("GAMECG", Color.BLUE, font, false);
- JCheckBox c5 = new AJCheckBox("WESTERN", Color.BLUE, font, false);
+ JCheckBox c1 = new AJCheckBox("DOUJINSHI", Color.BLUE, font, true);
+ JCheckBox c2 = new AJCheckBox("MANGA", Color.BLUE, font, true);
+ JCheckBox c3 = new AJCheckBox("ARTISTCG", Color.BLUE, font, true);
+ JCheckBox c4 = new AJCheckBox("GAMECG", Color.BLUE, font, true);
+ JCheckBox c5 = new AJCheckBox("WESTERN", Color.BLUE, font, true);
JCheckBox c6 = new AJCheckBox("NON-H", Color.BLUE, font, true);
- JCheckBox c7 = new AJCheckBox("IMAGESET", Color.BLUE, font, false);
- JCheckBox c8 = new AJCheckBox("COSPLAY", Color.BLUE, font, false);
- JCheckBox c9 = new AJCheckBox("ASIANPORN", Color.BLUE, font, false);
- JCheckBox c10 = new AJCheckBox("MISC", Color.BLUE, font, false);
+ JCheckBox c7 = new AJCheckBox("IMAGESET", Color.BLUE, font, true);
+ JCheckBox c8 = new AJCheckBox("COSPLAY", Color.BLUE, font, true);
+ JCheckBox c9 = new AJCheckBox("ASIANPORN", Color.BLUE, font, true);
+ JCheckBox c10 = new AJCheckBox("MISC", Color.BLUE, font, true);
final JComboBox language = new JComboBox(new String[]{"全部", "中文", "英文", "韩文", "法文", "西班牙"});
language.setSelectedIndex(1);
language.addActionListener(new ActionListener() {
diff --git a/src/org/arong/egdownloader/ui/window/SettingWindow.java b/src/org/arong/egdownloader/ui/window/SettingWindow.java
index a3904da..87598bb 100644
--- a/src/org/arong/egdownloader/ui/window/SettingWindow.java
+++ b/src/org/arong/egdownloader/ui/window/SettingWindow.java
@@ -96,6 +96,7 @@ public SettingWindow(JFrame mainWindow) {
settingTabPanel.setBounds(20, 0, 780, 450);
+
/* 基本配置 */
basicPanel = new JPanel();
basicPanel.setLayout(null);
diff --git a/src/org/arong/egdownloader/ui/work/SearchComicWorker.java b/src/org/arong/egdownloader/ui/work/SearchComicWorker.java
index 6350e6d..00a8966 100644
--- a/src/org/arong/egdownloader/ui/work/SearchComicWorker.java
+++ b/src/org/arong/egdownloader/ui/work/SearchComicWorker.java
@@ -33,14 +33,14 @@ protected Void doInBackground() throws Exception {
try {
String source = WebClient.postRequestWithCookie(this.url, mainWindow.setting.getCookieInfo());
String[] result = ScriptParser.search(source, mainWindow.setting);
- String json = result[1];
- if(result.length > 2){
- for(int i = 2; i < result.length; i ++){
- json += "###" + result[i];
+ if(result != null){
+ String json = result[1];
+ if(result.length > 2){
+ for(int i = 2; i < result.length; i ++){
+ json += "###" + result[i];
+ }
}
- }
- List searchTasks = JsonUtil.jsonArray2beanList(SearchTask.class, json);
- if(!"null".equals(result[1])){
+ List searchTasks = JsonUtil.jsonArray2beanList(SearchTask.class, json);
String totalTasks = result[0].split(",")[0];
//总页数
String totalPage = result[0].split(",")[1];//Spider.getTextFromSource(source, "+Math.min(", ", Math.max(");
@@ -56,7 +56,6 @@ protected Void doInBackground() throws Exception {
}
searchComicWindow.datas.get(searchComicWindow.key).put((currentPage) + "", searchTasks);
searchComicWindow.showResult(totalPage, currentPage);
-
}else{
searchComicWindow.totalLabel.setText("搜索不到相关内容");
searchComicWindow.hideLoading();
diff --git a/src/org/arong/egdownloader/ui/work/UpdateScriptWorker.java b/src/org/arong/egdownloader/ui/work/UpdateScriptWorker.java
index 08ecd59..584418d 100644
--- a/src/org/arong/egdownloader/ui/work/UpdateScriptWorker.java
+++ b/src/org/arong/egdownloader/ui/work/UpdateScriptWorker.java
@@ -78,7 +78,7 @@ protected Void doInBackground() throws Exception {
}catch (Exception e) {
}
- JOptionPane.showMessageDialog(null, "同步完成");
+ JOptionPane.showMessageDialog(mainWindow.settingWindow, "同步完成");
}
}catch (ConnectTimeoutException e) {
JOptionPane.showMessageDialog(null, "更新脚本出错,建议手动更新");
@@ -90,6 +90,11 @@ protected Void doInBackground() throws Exception {
if(initWindow != null){
initWindow.startMain();
}
+ }catch (Exception e) {
+ JOptionPane.showMessageDialog(null, "更新脚本出错,建议手动更新");
+ if(initWindow != null){
+ initWindow.startMain();
+ }
}finally{
if(mainWindow != null){
SettingWindow settingWindow = (SettingWindow) mainWindow.settingWindow;
diff --git a/ui.png b/ui.png
index bf92c69..15845c9 100644
Binary files a/ui.png and b/ui.png differ