首页/下载资源/行业研究/qBittorrent Enhanced Edition v4.5.3.zip

ZIPqBittorrent Enhanced Edition v4.5.3.zip

2401_8607122435.84MB需要积分:1

资源文件列表:

qBittorrent Enhanced Edition v4.5.3.zip 大约有94个文件
  1. qBittorrent/profile/
  2. qBittorrent/profile/qBittorrent/
  3. qBittorrent/profile/qBittorrent/config/
  4. qBittorrent/profile/qBittorrent/config/qBittorrent.ini 12.57KB
  5. qBittorrent/profile/qBittorrent/data/
  6. qBittorrent/profile/qBittorrent/data/BT_backup/
  7. qBittorrent/profile/qBittorrent/data/GeoDB/
  8. qBittorrent/profile/qBittorrent/data/GeoDB/dbip-country-lite.mmdb 7.46MB
  9. qBittorrent/profile/qBittorrent/data/logs/
  10. qBittorrent/profile/qBittorrent/data/logs/qbittorrent.log 11.9KB
  11. qBittorrent/profile/qBittorrent/data/nova3/
  12. qBittorrent/profile/qBittorrent/data/nova3/engines/
  13. qBittorrent/profile/qBittorrent/data/nova3/engines/academictorrents.py 5.95KB
  14. qBittorrent/profile/qBittorrent/data/nova3/engines/ali213.py 3.45KB
  15. qBittorrent/profile/qBittorrent/data/nova3/engines/anidex.py 3.87KB
  16. qBittorrent/profile/qBittorrent/data/nova3/engines/bakabt.py 9KB
  17. qBittorrent/profile/qBittorrent/data/nova3/engines/btbit.py 5KB
  18. qBittorrent/profile/qBittorrent/data/nova3/engines/btetree.py 3.98KB
  19. qBittorrent/profile/qBittorrent/data/nova3/engines/cinecalidad.py 3.27KB
  20. qBittorrent/profile/qBittorrent/data/nova3/engines/corsaroblu.py 5.05KB
  21. qBittorrent/profile/qBittorrent/data/nova3/engines/corsaronero.py 2.61KB
  22. qBittorrent/profile/qBittorrent/data/nova3/engines/corsarored.py 1.93KB
  23. qBittorrent/profile/qBittorrent/data/nova3/engines/cpasbien.py 3.93KB
  24. qBittorrent/profile/qBittorrent/data/nova3/engines/Cpasbien-davy39.py 3.93KB
  25. qBittorrent/profile/qBittorrent/data/nova3/engines/Cpasbien-mauricci.py 5.01KB
  26. qBittorrent/profile/qBittorrent/data/nova3/engines/darklibria.py 10.05KB
  27. qBittorrent/profile/qBittorrent/data/nova3/engines/demonoid.py 7.46KB
  28. qBittorrent/profile/qBittorrent/data/nova3/engines/dmhyorg.py 3.05KB
  29. qBittorrent/profile/qBittorrent/data/nova3/engines/elitetorrent.py 5.3KB
  30. qBittorrent/profile/qBittorrent/data/nova3/engines/ettv.py 4.58KB
  31. qBittorrent/profile/qBittorrent/data/nova3/engines/extratorrent.py 4.08KB
  32. qBittorrent/profile/qBittorrent/data/nova3/engines/eztv.py 2.4KB
  33. qBittorrent/profile/qBittorrent/data/nova3/engines/filelist.py 10.14KB
  34. qBittorrent/profile/qBittorrent/data/nova3/engines/foxcili.py 4.1KB
  35. qBittorrent/profile/qBittorrent/data/nova3/engines/horriblesubs.py 4.91KB
  36. qBittorrent/profile/qBittorrent/data/nova3/engines/horriblesubs-jac.py 4.91KB
  37. qBittorrent/profile/qBittorrent/data/nova3/engines/horriblesubs-mauricci.py 3.58KB
  38. qBittorrent/profile/qBittorrent/data/nova3/engines/idope.py 2.6KB
  39. qBittorrent/profile/qBittorrent/data/nova3/engines/jackett.py 7.07KB
  40. qBittorrent/profile/qBittorrent/data/nova3/engines/kickass_torrent.py 5.27KB
  41. qBittorrent/profile/qBittorrent/data/nova3/engines/leetx.py 6.71KB
  42. qBittorrent/profile/qBittorrent/data/nova3/engines/legittorrents.py 4.67KB
  43. qBittorrent/profile/qBittorrent/data/nova3/engines/limetorrents.py 4.67KB
  44. qBittorrent/profile/qBittorrent/data/nova3/engines/linuxtracker.py 5.29KB
  45. qBittorrent/profile/qBittorrent/data/nova3/engines/lostfilm.py 24KB
  46. qBittorrent/profile/qBittorrent/data/nova3/engines/magnetdl.py 1.69KB
  47. qBittorrent/profile/qBittorrent/data/nova3/engines/mejor.py 4.68KB
  48. qBittorrent/profile/qBittorrent/data/nova3/engines/mkvcage.py 3.18KB
  49. qBittorrent/profile/qBittorrent/data/nova3/engines/ncore.py 7.92KB
  50. qBittorrent/profile/qBittorrent/data/nova3/engines/nnmclub.py 11.31KB
  51. qBittorrent/profile/qBittorrent/data/nova3/engines/nyaa.py 2.77KB
  52. qBittorrent/profile/qBittorrent/data/nova3/engines/nyaapantsu.py 7.03KB
  53. qBittorrent/profile/qBittorrent/data/nova3/engines/nyaasi.py 5.13KB
  54. qBittorrent/profile/qBittorrent/data/nova3/engines/oxtorrent.py 5.83KB
  55. qBittorrent/profile/qBittorrent/data/nova3/engines/pantsu.py 1.7KB
  56. qBittorrent/profile/qBittorrent/data/nova3/engines/pctfenix.py 6.44KB
  57. qBittorrent/profile/qBittorrent/data/nova3/engines/pctreload.py 4.12KB
  58. qBittorrent/profile/qBittorrent/data/nova3/engines/piratebay.py 3.79KB
  59. qBittorrent/profile/qBittorrent/data/nova3/engines/pornolab.py 11.22KB
  60. qBittorrent/profile/qBittorrent/data/nova3/engines/rarbg.py 3.53KB
  61. qBittorrent/profile/qBittorrent/data/nova3/engines/rockbox.py 5.21KB
  62. qBittorrent/profile/qBittorrent/data/nova3/engines/rutor.py 5.17KB
  63. qBittorrent/profile/qBittorrent/data/nova3/engines/rutracker.py 14.45KB
  64. qBittorrent/profile/qBittorrent/data/nova3/engines/skytorrents.py 4.66KB
  65. qBittorrent/profile/qBittorrent/data/nova3/engines/smallgames.py 2.22KB
  66. qBittorrent/profile/qBittorrent/data/nova3/engines/snowfl.py 3.22KB
  67. qBittorrent/profile/qBittorrent/data/nova3/engines/solidtorrents.py 1.74KB
  68. qBittorrent/profile/qBittorrent/data/nova3/engines/solotorrent.py 3.73KB
  69. qBittorrent/profile/qBittorrent/data/nova3/engines/subtorrents.py 2.87KB
  70. qBittorrent/profile/qBittorrent/data/nova3/engines/sukebei.py 1.62KB
  71. qBittorrent/profile/qBittorrent/data/nova3/engines/sumotorrent.py 6.19KB
  72. qBittorrent/profile/qBittorrent/data/nova3/engines/threedm.py 3.36KB
  73. qBittorrent/profile/qBittorrent/data/nova3/engines/tokyotoshokan.py 5.37KB
  74. qBittorrent/profile/qBittorrent/data/nova3/engines/torlock.py 4.06KB
  75. qBittorrent/profile/qBittorrent/data/nova3/engines/torrent9.py 5.92KB
  76. qBittorrent/profile/qBittorrent/data/nova3/engines/torrentfunk.py 4.13KB
  77. qBittorrent/profile/qBittorrent/data/nova3/engines/torrentgalaxy.py 4.38KB
  78. qBittorrent/profile/qBittorrent/data/nova3/engines/torrentproject.py 5.04KB
  79. qBittorrent/profile/qBittorrent/data/nova3/engines/torrentscsv.py 3.27KB
  80. qBittorrent/profile/qBittorrent/data/nova3/engines/uniondht.py 9.78KB
  81. qBittorrent/profile/qBittorrent/data/nova3/engines/yggtorrent.py 9.29KB
  82. qBittorrent/profile/qBittorrent/data/nova3/engines/yourbittorrent.py 4.23KB
  83. qBittorrent/profile/qBittorrent/data/nova3/engines/yts.py 7.48KB
  84. qBittorrent/profile/qBittorrent/data/nova3/engines/yts_am.py 1.89KB
  85. qBittorrent/profile/qBittorrent/data/nova3/engines/zooqle.py 5.08KB
  86. qBittorrent/profile/qBittorrent/data/peers.db
  87. qBittorrent/profile/qBittorrent/data/rss/
  88. qBittorrent/profile/qBittorrent/data/rss/articles/
  89. qBittorrent/qbittorrent.exe 23.18MB
  90. qBittorrent/qbittorrent_x64.exe 27.94MB
  91. qBittorrent/qt.conf 84B
  92. qBittorrent/translations/
  93. qBittorrent/translations/qt_zh_CN.qm 114.6KB
  94. qBittorrent/translations/qtbase_zh_TW.qm 124.85KB

资源介绍:

qBittorrent Enhanced Edition v4.5.3.zip
#VERSION: 0.20 #AUTHORS: Bugsbringer (dastins193@gmail.com) EMAIL = "YOUR_EMAIL" PASSWORD = "YOUR_PASSWORD" proxy = { 'enable': False, 'proxy_urls': { 'http': 'ip:port', 'https': 'ip:port' }, 'auth': False, 'username': '', 'password': '' } ENABLE_PEERS_INFO = True import concurrent.futures import hashlib import json import logging import os import re from collections import OrderedDict from datetime import datetime from html.parser import HTMLParser from http.cookiejar import CookieJar from io import BytesIO from random import randint from urllib import parse, request from novaprinter import prettyPrinter STORAGE = os.path.abspath(os.path.dirname(__file__)) # logging LOG_FORMAT = '[%(asctime)s] %(levelname)s:%(name)s:%(funcName)s - %(message)s' LOG_DT_FORMAT = '%d-%b-%y %H:%M:%S' if __name__ == '__main__': logging.basicConfig( level='DEBUG', format=LOG_FORMAT, datefmt=LOG_DT_FORMAT ) else: logging.basicConfig( level='ERROR', filename=os.path.join(STORAGE, 'lostfilm.log'), format=LOG_FORMAT, datefmt=LOG_DT_FORMAT ) logger = logging.getLogger('lostfilm') logger.setLevel(logging.WARNING) #proxy if proxy['enable'] and proxy['auth']: for scheme, proxy_url in proxy['proxy_urls'].items(): proxy[scheme] = '{}:{}@{}'.format(proxy['username'], proxy['password'], proxy_url) class lostfilm: url = 'https://www.lostfilm.tv' name = 'LostFilm' supported_categories = {'all': '0'} search_url_pattern = 'https://www.lostfilm.tv/search/?q={what}' serial_url_pattern = 'https://www.lostfilm.tv{href}/seasons' download_url_pattern = 'https://www.lostfilm.tv/v_search.php?a={code}' season_url_pattern = 'https://www.lostfilm.tv{href}/season_{season}' episode_url_pattern = 'https://www.lostfilm.tv{href}/season_{season}/episode_{episode}/' additional_url_pattern = 'https://www.lostfilm.tv{href}/additional/episode_{episode}/' new_url_pattern = "https://www.lostfilm.tv/new/page_{page}/type_{type}" additional_season = 999 all_episodes = 999 peer_id = '-PC0001-' + ''.join([str(randint(0, 9)) for _ in range(12)]) datetime_format = '%d.%m.%Y' units_dict = {"ТБ": "TB", "ГБ": "GB", "МБ": "MB", "КБ": "KB", "Б": "B"} def __init__(self): self.session = Session() def search(self, what, cat='all'): self.torrents_count = 0 logger.info(what) if not self.session.is_actual: self.pretty_printer({ 'link': 'Error', 'name': self.session.error, 'size': "0", 'seeds': -1, 'leech': -1, 'engine_url': self.url, 'desc_link': self.url }) return False self.prevs = {} self.old_seasons = {} if parse.unquote(what).startswith('@'): params = parse.unquote(what)[1:].split(':') if params: if params[0] == 'fav': self.get_fav() elif params[0] == 'new': if len(params) == 1: self.get_new() elif len(params) == 2 and params[1] == 'fav': self.get_new(fav=True) else: try: url = self.search_url_pattern.format(what=request.quote(what)) search_result = self.session.request(url) except Exception as exp: logger.error(exp) else: serials_tags = Parser(search_result).find_all('div', {'class': 'row-search'}) if serials_tags: with concurrent.futures.ThreadPoolExecutor() as executor: for serial_href in (serial.a['href'] for serial in serials_tags): logger.debug(serial_href) executor.submit(self.get_episodes, serial_href) logger.info('%s torrents', self.torrents_count) def get_new(self, fav=False, days=7): type = 99 if fav else 0 today = datetime.now().date() self.dates = {} with concurrent.futures.ThreadPoolExecutor() as executor: page_number = 1 while True: url = self.new_url_pattern.format(page=page_number, type=type) page = self.session.request(url) rows = Parser(page).find_all('div', {'class': 'row'}) if not rows: break for row in rows: release_date_str = row.find_all('div', {'class': 'alpha'})[1].text release_date_str = re.search(r'\d{2}.\d{2}.\d{4}', release_date_str)[0] release_date = datetime.strptime(release_date_str, self.datetime_format).date() date_delta = today - release_date if date_delta.days > days: return href = '/'.join(row.a['href'].split('/')[:3]) haveseen_btn = row.find('div', {'onclick': 'markEpisodeAsWatched(this);'}) episode_code = haveseen_btn['data-episode'].rjust(9, '0') self.dates[episode_code] = release_date_str executor.submit(self.get_torrents, href, episode_code, True) page_number += 1 def get_fav(self): page = self.session.request("https://www.lostfilm.tv/my/type_1") with concurrent.futures.ThreadPoolExecutor() as executor: for serial in Parser(page).find_all('div', {'class': 'serial-box'}): href = serial.find('a', {'class': 'body'})['href'] executor.submit(self.get_episodes, href) def get_episodes(self, serial_href): self.prevs[serial_href] = [] self.old_seasons[serial_href] = 0 serial_page = self.session.request(self.serial_url_pattern.format(href=serial_href)) with concurrent.futures.ThreadPoolExecutor() as executor: for button in Parser(serial_page).find_all('div', {'class': 'external-btn'}): item_button = button.attrs.get('onclick') if item_button: episode_code = re.search(r'\d{7,9}', item_button)[0].rjust(9, '0') logger.debug('episode_code = %s', episode_code) executor.submit(self.get_torrents, serial_href, episode_code) def get_torrents(self, href, code, new_episodes=False): season, episode = int(code[3:6]), int(code[6:]) desc_link = self.get_description_url(href, code) date = ' [' + self.dates.pop(code, '') + ']' if new_episodes else '' if not new_episodes: rules = [ season > self.old_seasons[href], episode == self.all_episodes, season == self.additional_season ] if not any(rules): return redir_page = self.session.request(self.download_url_pattern.format(code=code)) torrent_page_url = re.search(r'(?<=location.replace\(").+(?="\);)', redir_page) if not torrent_page_url: return torrent_page = self.session.request(torrent_page_url[0]) logger.debug('desc_link = %s', desc_link) with concurrent.futures.ThreadPoolExecutor() as executor: for torrent_tag in Parser(torrent_page).find_all('div', {'class': 'inner-box--item'}): main = torrent_tag.find('div', {'class': 'inner-box--link main'}).a link, name
100+评论
captcha