예제 #1
0
def acestream_engine():
  import acestream
  from support.common import temp_path

  return acestream.Engine(host=plugin.get_setting('as-host', unicode),
                          port=plugin.get_setting('as-port', int, default=62062),
                          save_path=temp_path() if plugin.get_setting('save-files', int) else None)
예제 #2
0
def utorrent_client():
  from support.torrent.client import UTorrentClient

  return UTorrentClient(login=plugin.get_setting('utorrent-login', unicode),
                        password=plugin.get_setting('utorrent-password', unicode),
                        host=plugin.get_setting('utorrent-host', unicode),
                        port=plugin.get_setting('utorrent-port', int, default=8080))
예제 #3
0
def transmission_client():
  from support.torrent.client import TransmissionClient

  return TransmissionClient(login=plugin.get_setting('transmission-login', unicode),
                            password=plugin.get_setting('transmission-password', unicode),
                            host=plugin.get_setting('transmission-host', unicode),
                            port=plugin.get_setting('transmission-port', int, default=9091),
                            path=plugin.get_setting('transmission-path', unicode))
예제 #4
0
def torrent2http_stream():
  from support.torrent.stream import Torrent2HttpStream

  return Torrent2HttpStream(engine=torrent2http_engine(),
                            buffering_progress=stream_buffering_progress(),
                            playing_progress=stream_playing_progress(),
                            pre_buffer_bytes=plugin.get_setting('t2h-pre-buffer-mb', int) * 1024 * 1024)
예제 #5
0
def select_torrent_link(series_id,
                        season_number,
                        episode_number,
                        select_quality=False):
    dom_parser = get_dom_parser()
    links = dom_parser.get_torrent_links(series_id, season_number,
                                         episode_number)

    qualities = sorted(Quality)
    quality = plugin.get_setting('quality', int)

    ordered_links = [
        next((l for l in links if l.quality == q), None) for q in qualities
    ]

    if not quality or select_quality or not ordered_links[quality - 1]:
        filtered_links = [l for l in ordered_links if l]
        if not filtered_links:
            return
        options = [
            "%s / %s" %
            (tf.color(l.quality.localized, 'white'), tf.human_size(l.size))
            for l in filtered_links
        ]
        res = xbmcgui.Dialog().select(plugin.get_string(40400), options)
        if res < 0:
            return
        return filtered_links[res]
    else:
        return ordered_links[quality - 1]
예제 #6
0
 def title(self):
   if plugin.get_setting('show-original-title', bool):
     if self.favorited == True:
       return '%s %s' % (tf.color(self.title_en, 'lime'), self.unwatched_episode_count)
     else:
       return '%s %s' % (self.title_en, self.unwatched_episode_count)  
   else:
     if self.favorited == True:
       return '%s %s' % (tf.color(self.title_ru, 'lime'), self.unwatched_episode_count)
     else:
        return '%s %s' % (self.title_ru, self.unwatched_episode_count)
예제 #7
0
 def title(self):
     if plugin.get_setting('show-original-title', bool):
         if self.favorited == True:
             return '%s %s' % (tf.color(
                 self.title_en, 'lime'), self.unwatched_episode_count)
         else:
             return '%s %s' % (self.title_en, self.unwatched_episode_count)
     else:
         if self.favorited == True:
             return '%s %s' % (tf.color(
                 self.title_ru, 'lime'), self.unwatched_episode_count)
         else:
             return '%s %s' % (self.title_ru, self.unwatched_episode_count)
예제 #8
0
def xrequests_session():
  from requests.packages.urllib3.util import Retry
  from support.xrequests import Session

  use_proxy = plugin.get_setting('use-proxy', int)

  session = Session(max_retries=Retry(total=2, status_forcelist=[500, 502, 503, 504], backoff_factor=0.3),
                    timeout=5, proxy_list=proxy_list() if use_proxy else None)

  # noinspection PyUnusedLocal,PyShadowingNames
  def always_use_proxy(request, response):
      return True

  if use_proxy == 2:
    session.add_proxy_need_check(always_use_proxy)

  return session
예제 #9
0
def torrent2http_engine():
  import torrent2http
  from support.common import temp_path

  return torrent2http.Engine(download_path=temp_path(),
                             state_file=plugin.addon_data_path('t2h_state'),
                             connections_limit=plugin.get_setting('t2h-max-connections', int, default=None),
                             download_kbps=plugin.get_setting('t2h-download-rate', int, default=None),
                             upload_kbps=plugin.get_setting('t2h-upload-rate', int, default=None),
                             log_overall_progress=plugin.get_setting('t2h-debug-mode', bool),
                             log_pieces_progress=plugin.get_setting('t2h-debug-mode', bool),
                             debug_alerts=plugin.get_setting('t2h-debug-mode', bool),
                             listen_port=plugin.get_setting('t2h-listen-port', int, default=6881),
                             use_random_port=plugin.get_setting('t2h-use-random-port', bool),
                             trackers=['http://retracker.local/announce'],
                             dht_routers=['dht.transmissionbt.com', 'router.utorrent.com', 'router.bittorrent.com'],
                             max_idle_timeout=5,
                             keep_files=True,
                             enable_utp=False)
예제 #10
0
def select_torrent_link(series_id, season_number, episode_number, select_quality = False):
  dom_parser = get_dom_parser()
  links = dom_parser.get_torrent_links(series_id, season_number, episode_number)

  qualities = sorted(Quality)
  quality = plugin.get_setting('quality', int)

  ordered_links = [next((l for l in links if l.quality == q), None) for q in qualities]

  if not quality or select_quality or not ordered_links[quality - 1]:
    filtered_links = [l for l in ordered_links if l]
    if not filtered_links:
      return
    options = ["%s / %s" % (tf.color(l.quality.localized, 'white'), tf.human_size(l.size)) for l in filtered_links]
    res = xbmcgui.Dialog().select(plugin.get_string(40400), options)
    if res < 0:
      return
    return filtered_links[res]
  else:
    return ordered_links[quality - 1]
예제 #11
0
def torrent_stream():
  stream = plugin.get_setting('torrent-stream', choices=(torrent2http_stream, ace_stream))
  return stream()
예제 #12
0
 def title(self):
   if plugin.get_setting('show-original-title', bool):
     return '%s %s' % (self.title_en, self.unwatched_episode_count)
   else:
     return '%s %s' % (self.title_ru, self.unwatched_episode_count)
예제 #13
0
 def title(self):
   if plugin.get_setting('show-original-title', bool):
     return self.season_number +'x' + self.episode_number + '  -  ' + self.title_en
   else:
     return self.season_number +'x' + self.episode_number + '  -  ' + self.title_ru      
 def password(self):
     return plugin.get_setting('password', unicode)
예제 #15
0
def torrent_client():
  client = plugin.get_setting('torrent-client', choices=(None, utorrent_client, transmission_client))
  return client() if client else None
예제 #16
0
 def title(self):
     if plugin.get_setting('show-original-title', bool):
         return '%s %s' % (self.title_en, self.unwatched_episode_count)
     else:
         return '%s %s' % (self.title_ru, self.unwatched_episode_count)
 def login(self):
     return plugin.get_setting('login', unicode)
예제 #18
0
def stream_playing_progress():
  from support.progress import XbmcOverlayTorrentTransferProgress

  if plugin.get_setting('show-playing-progress', bool):
    return XbmcOverlayTorrentTransferProgress(window_id=12005)
 def title(self):
   if plugin.get_setting('show-original-title', bool):
     return '%s' % (self.title_en)
   else:
     return '%s' % (self.title_ru)
예제 #20
0
 def title(self):
     if plugin.get_setting('show-original-title', bool):
         return '%s' % (self.title_en)
     else:
         return '%s' % (self.title_ru)
 def login(self):
   return plugin.get_setting('login', unicode)
 def password(self):
   return plugin.get_setting('password', unicode)