lib/downloader.rb in narou-3.1.10 vs lib/downloader.rb in narou-3.1.11

- old
+ new

@@ -20,11 +20,10 @@ # 小説サイトからのダウンロード # class Downloader include Narou::Eventable - NOVEL_SITE_SETTING_DIR = "webnovel/" SECTION_SAVE_DIR_NAME = "本文" # 本文を保存するディレクトリ名 CACHE_SAVE_DIR_NAME = "cache" # 差分用キャッシュ保存用ディレクトリ名 RAW_DATA_DIR_NAME = "raw" # 本文の生データを保存するディレクトリ名 TOC_FILE_NAME = "toc.yaml" STEPS_WAIT_TIME = 5 # 数話ごとにかかるwaitの秒数 @@ -66,11 +65,11 @@ # def self.get_sitesetting_by_target(target) toc_url = get_toc_url(target) setting = nil if toc_url - setting = @@settings.find { |s| s.multi_match_once(toc_url, "url") } + setting = SiteSetting.find(toc_url) end setting end # @@ -133,11 +132,11 @@ # def self.get_data_by_target(target) target = Narou.alias_to_id(target) case get_target_type(target) when :url - setting = @@settings.find { |s| s.multi_match_once(target, "url") } + setting = SiteSetting.find(target) if setting toc_url = setting["toc_url"] return @@database.get_data_by_toc_url(toc_url, setting) end when :ncode @@ -168,19 +167,19 @@ # def self.get_toc_url(target) target = Narou.alias_to_id(target) case get_target_type(target) when :url - setting = @@settings.find { |s| s.multi_match_once(target, "url") } + setting = SiteSetting.find(target) return setting["toc_url"] if setting when :ncode @@database.each_value do |data| if data["toc_url"] =~ %r!#{target}/$! return data["toc_url"] end end - return "#{@@narou["top_url"]}/#{target}/" + return "#{SiteSetting.narou["top_url"]}/#{target}/" when :id data = @@database[target.to_i] return data["toc_url"] if data when :other data = @@database.get_data("title", target) @@ -207,49 +206,11 @@ @@database.delete(data["id"]) @@database.save_database data["title"] end - def self.get_sitesetting_by_sitename(sitename) - setting = @@settings.find { |s| s["name"] == sitename } - return setting if setting - error "#{sitename} の設定ファイルが見つかりません" - exit Narou::EXIT_ERROR_CODE - end - # - # 小説サイトの定義ファイルを全部読み込む - # - # スクリプト同梱の設定ファイルを読み込んだあと、ユーザの小説の管理ディレクトリ内にある - # webnovel ディレクトリからも定義ファイルを読み込む - # - def self.load_settings - settings = @@__settings_cache ||= [] - return settings unless settings.empty? - load_paths = [ - File.join(Narou.get_script_dir, NOVEL_SITE_SETTING_DIR, "*.yaml"), - File.join(Narou.get_root_dir, NOVEL_SITE_SETTING_DIR, "*.yaml") - ].uniq.join("\0") - Dir.glob(load_paths) do |path| - setting = SiteSetting.load_file(path) - if setting["name"] == "小説家になろう" - @@narou = setting - end - settings << setting - end - if settings.empty? - error "小説サイトの定義ファイルがひとつもありません" - exit Narou::EXIT_ERROR_CODE - end - unless @@narou - error "小説家になろうの定義ファイルが見つかりませんでした" - exit Narou::EXIT_ERROR_CODE - end - settings - end - - # # 差分用キャッシュの保存ディレクトリ取得 # def self.get_cache_root_dir(target) dir = get_novel_data_dir_by_target(target) if dir @@ -276,10 +237,9 @@ name = title.start_with?("n") ? title[1..2] : title[0..1] name.strip end if Narou.already_init? - @@settings = load_settings @@database = Database.instance end # # 変数初期化