ComicCrawler icon indicating copy to clipboard operation
ComicCrawler copied to clipboard

请问能提供漫画网址转换的功能吗?

Open wby238 opened this issue 6 years ago • 11 comments

以前下载了许多在www.ikanman.com这个网站的漫画,但现在这个网站的网址改为www.manhuagui.com了,www.ikanman.com这个网址已经403了,直接将ikanman替换为manhuagui的话是可以访问的。

wby238 avatar Oct 26 '17 16:10 wby238

執行這支 python script 試試。請先備份存檔!

from comiccrawler.mission_manager import mission_manager, edit_mission_id, init_episode

POOL_NAMES = ["view", "library"]
TARGET = "ikanman.com"
REPL = "manhuagui.com"

for mission in mission_manager.pool.values():
	if TARGET not in mission.url:
		continue
		
	old_url = mission.url
	with edit_mission_id(mission):
		mission.url = old_url.replace(TARGET, REPL)
	del mission_manager.pool[old_url]
	mission_manager.pool[mission.url] = mission
	
	for name in POOL_NAMES:
		pool = getattr(mission_manager, name)
		if old_url in pool:
			del pool[old_url]
			pool[mission.url] = mission
			
	print(old_url, mission.url)
	
mission_manager.edit = True
mission_manager.save()

順帶一提,我這邊看 http://www.ikanman.com/ 是 301 不是 403,所以即使不改網址也沒問題。

eight04 avatar Oct 30 '17 18:10 eight04

thx 要备份的是用户文件夹下的comiccrawler文件夹吗?

順帶一提,我這邊看 http://www.ikanman.com/ 是 301 不是 403,所以即使不改網址也沒問題。

我这里打开 http://www.ikanman.com/ 就是403,目前是用hosts将 www.manhuagui.com 的ip代替 www.ikanman.com 原本的ip来解决问题

wby238 avatar Oct 31 '17 03:10 wby238

要备份的是用户文件夹下的comiccrawler文件夹吗?

沒錯。包括 setting.ini (設定檔)、view.json, pool.json, library.json (任務列表)、和 pool 資料夾下的所有檔案(集數列表)。

eight04 avatar Oct 31 '17 04:10 eight04

目前版本使用這個改名指令會出現以下錯誤 不知道是不是有什麼變數改名字了?

Traceback (most recent call last): File "manhuagui.py", line 1, in from comiccrawler.mission_manager import mission_manager, edit_mission_id, init_episode ImportError: cannot import name 'edit_mission_id'

IthildinX avatar Jul 23 '18 14:07 IthildinX

edit_mission_id 現在位於 comiccrawler.episode_loader 底下︰

from comiccrawler.episode_loader import edit_mission_id

eight04 avatar Jul 23 '18 16:07 eight04

修正edit_mission_id的呼叫之後錯誤訊息變成init_episode 但我在各檔案中都找不到這句,請問init_episode目前是改名了嗎?

Traceback (most recent call last): File "manhuagui.py", line 1, in from comiccrawler.mission_manager import mission_manager, init_episode ImportError: cannot import name 'init_episode'

砍掉呼叫init_episode硬是使用的話,會出現以下錯誤,然後實際上好像沒有修改到 Traceback (most recent call last): File "manhuagui.py", line 8, in for mission in mission_manager.pool.values(): RuntimeError: dictionary changed size during iteration

IthildinX avatar Jul 24 '18 12:07 IthildinX

init_episode 的確是沒有在使用,移除也沒影響。修改成如下試試︰

from comiccrawler.mission_manager import mission_manager
from comiccrawler.episode_loader import edit_mission_id

POOL_NAMES = ["view", "library"]
TARGET = "ikanman.com"
REPL = "manhuagui.com"

for mission in list(mission_manager.pool.values()):
	if TARGET not in mission.url:
		continue
		
	old_url = mission.url
	with edit_mission_id(mission):
		mission.url = old_url.replace(TARGET, REPL)
	del mission_manager.pool[old_url]
	mission_manager.pool[mission.url] = mission
	
	for name in POOL_NAMES:
		pool = getattr(mission_manager, name)
		if old_url in pool:
			del pool[old_url]
			pool[mission.url] = mission
			
	print(old_url, mission.url)
	
mission_manager.edit = True
mission_manager.save()

dictionary changed size during iteration 是字典 mission_manager.pool 在迴圈中被修改會跳出的錯誤。換句話說,那份程式碼是完全沒用的……不知道 @wby238 是否有發現。

eight04 avatar Jul 24 '18 14:07 eight04

eight你好, 我用这个脚本可以替换library.json、view.json。 pool.json和pool文件夹的分章节json没修改。 我替换的内容是www.manhuagui.com到tw.manhuagui.com 不过旧有pool文件夹的分章节json文件好像没用了。 所以我换了一个脚本把pool.json和pool文件夹各章节json替换上述内容之后。 用检查更新图书馆,pool文件夹里会重建一个“所有都没下载过”的分章节json文件。 感觉是不会读取pool文件夹改过的分章节json文件。 这样会使得图书馆中所有下载过的文件全都要重新下载一遍。 请教有没有修改方法,谢谢。

starobots avatar Nov 08 '18 22:11 starobots

@starobots 哪個腳本?舊的 還是 新的

eight04 avatar Nov 08 '18 23:11 eight04

下面这个只能改view.json和library.json。pool.json和pool文件夹里面的改不了。 如果我自己改pool.json和pool文件夹,检查更新之后就会全都重新下载。 麻烦您了。

starobots avatar Nov 09 '18 05:11 starobots

pool.json和pool文件夹的分章节json没修改。

我測試了一下,pool.json 內的任務 URL 有被更新,pool 資料夾內的檔名也有被更新。你使用的 Comic Crawler 是最新版嗎?

换了一个脚本把pool.json和pool文件夹各章节json替换上述内容之后

哪個腳本?

eight04 avatar Nov 09 '18 06:11 eight04