def process_telegram_data(self, data, target=None): try: ret = ModelItem.process_telegram_data(data) logger.debug(data) #ret = None if ret is not None: if ModelSetting.get_bool('receive_send_notify'): msg = '๐ AV ์ ๋ณด ์์ \n' msg += '์ ๋ชฉ : [%s] %s (%s)\n' % (ret.code, ret.title, ret.date) msg += 'ํ์ผ : %s\n' % ret.filename msg += 'ํด๋ : %s\n' % ret.dirname msg += 'ํฌ๊ธฐ : %s\n' % Util.sizeof_fmt(ret.total_size) url = '%s/%s/api/%s/add_download?id=%s' % (SystemModelSetting.get('ddns'), package_name, self.name, ret.id) if SystemModelSetting.get_bool('auth_use_apikey'): url += '&apikey=%s' % SystemModelSetting.get('auth_apikey') if app.config['config']['is_server']: msg += '\n' + ret.magnet + '\n' else: msg += '\nโ ๋ค์ด๋ก๋ ์ถ๊ฐ\n<%s>\n' % url #msg += '\nโ ๋ค์ด๋ก๋ ์ถ๊ฐ\n<%s>\n' % url poster = ret.poster if ModelSetting.get_bool('show_poster_notify') else None ToolBaseNotify.send_message(msg, image_url=poster, message_id='bot_downloader_av_receive') self.invoke() try: if app.config['config']['is_server']: from tool_expand import TorrentProcess TorrentProcess.receive_new_data(ret, package_name) except: pass except Exception as e: logger.error('Exception:%s', e) logger.error(traceback.format_exc())
def process_menu(self, sub, req): arg = P.ModelSetting.to_dict() arg['sub'] = self.name if sub == 'setting': arg['scheduler'] = str( scheduler.is_include(self.get_scheduler_name())) arg['is_running'] = str( scheduler.is_running(self.get_scheduler_name())) arg['rss_api'] = '%s/%s/api/%s/rss' % ( SystemModelSetting.get('ddns'), package_name, self.name) arg['rss_api'] = Util.make_apikey(arg['rss_api']) return render_template( '{package_name}_{module_name}_{sub}.html'.format( package_name=package_name, module_name=self.name, sub=sub), arg=arg) elif sub == 'list': arg['is_torrent_info_installed'] = False try: import torrent_info arg['is_torrent_info_installed'] = True except: pass arg['ddns'] = SystemModelSetting.get('ddns') arg['show_log'] = ModelSetting.get_bool('show_log') arg['show_poster'] = ModelSetting.get('show_poster') return render_template( '{package_name}_{module_name}_{sub}.html'.format( package_name=package_name, module_name=self.name, sub=sub), arg=arg) return render_template('sample.html', title='%s - %s' % (package_name, sub))
def process_telegram_data(data): try: logger.debug('receive data') logger.debug(data) type_list = ModelSetting.get('cache_save_type_list').split('|') type_list = Util.get_list_except_empty(type_list) if len(type_list) == 0 or data['t'] in type_list: ret = ModelOffcloud2Cache.add(data) if ret is not None: logger.debug('Offcloud2 %s append' % ret.name) if ModelSetting.get_bool( 'cache_receive_info_send_telegram'): msg = '๐ Offcloud2 ์บ์ฌ ์ ๋ณด ์์ \n' msg += 'Type : %s\n' % data['t'] msg += '%s\n' % data['n'] from system.model import ModelSetting as SystemModelSetting ddns = SystemModelSetting.get('ddns') url = '%s/%s/api/cache_download?id=%s' % ( ddns, package_name, ret.id) if SystemModelSetting.get_bool('auth_use_apikey'): url += '&apikey=%s' % SystemModelSetting.get( 'auth_apikey') msg += 'โ ๋ฆฌ๋ชจํธ ๋ค์ด๋ก๋ ์ถ๊ฐ\n<%s>' % url import framework.common.notify as Notify Notify.send_message( msg, message_id='offcloud2_cache_receive') except Exception as e: logger.error(e) logger.error(traceback.format_exc())
def info2(self, code, SiteClass): ret = None logger.debug('ama info2:%s %s', code, SiteClass) image_mode = ModelSetting.get( 'jav_censored_ama_{site_name}_image_mode'.format( site_name=SiteClass.site_name)) data = SiteClass.info( code, proxy_url=ModelSetting.get( 'jav_censored_ama_{site_name}_proxy_url'.format( site_name=SiteClass.site_name)) if ModelSetting.get_bool( 'jav_censored_ama_{site_name}_use_proxy'.format( site_name=SiteClass.site_name)) else None, image_mode=image_mode) #logger.debug(data) if data['ret'] == 'success': ret = data['data'] if ModelSetting.get_bool( 'jav_censored_use_sjva' ) and image_mode == '3' and SystemModelSetting.get( 'trans_type' ) == '1' and SystemModelSetting.get('trans_google_api_key') != '': MetadataServerUtil.set_metadata_jav_censored( code, ret, ret['title'].lower()) return ret
def process_telegram_data(self, data, target=None): try: ret = ModelBotDownloaderKtvItem.process_telegram_data(data) #logger.debug(ret) if ret is not None: if ModelSetting.get_bool('receive_info_send_telegram'): msg = '๐ TV ์ ๋ณด ์์ \n' msg += '์ ๋ชฉ : %s\n' % data['filename'] if ret is None: msg += '์ค๋ณต ๋ง๊ทธ๋ท์ ๋๋ค.' #TelegramHandle.sendMessage(msg) else: url = '%s/%s/api/%s/add_download?url=%s' % (SystemModelSetting.get('ddns'), package_name, self.name, ret.magnet) if SystemModelSetting.get_bool('auth_use_apikey'): url += '&apikey=%s' % SystemModelSetting.get('auth_apikey') if app.config['config']['is_sjva_server']: msg += '\n' + ret.magnet + '\n' else: msg += '\nโ ๋ค์ด๋ก๋ ์ถ๊ฐ\n<%s>\n' % url try: if ret.daum_id is not None: url = 'https://search.daum.net/search?w=tv&q=%s&irk=%s&irt=tv-program&DA=TVP' % (urllib.quote(ret.daum_title.encode('utf8')), ret.daum_id) msg += '\nโ Daum ์ ๋ณด\n%s' % url except Exception as e: logger.error('Exception:%s', e) logger.error(traceback.format_exc()) import framework.common.notify as Notify Notify.send_message(msg, image_url=ret.daum_poster_url, message_id='bot_downloader_ktv_receive') self.invoke() TorrentProcess.receive_new_data(ret, package_name) except Exception, e: logger.error('Exception:%s', e) logger.error(traceback.format_exc())
def uninstall(self): def func(): return_log = SystemLogicCommand2('์ญ์ ', [ ['msg', u'์ ์๋ง ๊ธฐ๋ค๋ ค์ฃผ์ธ์.'], [ 'msg', u'kill.sh ๋ช ๋ น ์คํ ํ ์น์ ๋ฐ์์ด ์์ต๋๋ค. ์๋ SJVA ์ฌ์์ํ๋ ์ ์ ํ ์๋ก๊ณ ์นจํ์ธ์.' ], ['{}/data/custom/nginx/files/kill.sh'.format(path_app_root)], [ '{}/data/custom/nginx/files/uninstall.sh'.format( path_app_root) ], ['msg', u'์ญ์ ๊ฐ ์๋ฃ๋์์ต๋๋ค.'], ], wait=True, show_modal=True).start() import system system.restart() if SystemModelSetting.get('port') == '19999': SystemModelSetting.set('port', '9999') t = threading.Thread(target=func, args=()) t.setDaemon(True) t.start()
def install(self): def func(): cmd = [ ['msg', u'์ ์๋ง ๊ธฐ๋ค๋ ค์ฃผ์ธ์.'], [ '{}/data/custom/nginx/files/install.sh'.format( path_app_root) ], ['msg', u'์ค์น๊ฐ ์๋ฃ๋์์ต๋๋ค.'], ] if is_termux(): cmd.append(['msg', u'termux๋ฅผ ์ฌ์์ ํด์ฃผ์ธ์.']) else: cmd.append(['msg', u'SJVA๊ฐ ์๋ ๋์ปค๋ฅผ ์ฌ์์ ํด์ฃผ์ธ์.']) cmd.append(['msg', u'์) docker restart sjva']) return_log = SystemLogicCommand2('์ค์น', cmd, wait=False, show_modal=True).start() if SystemModelSetting.get('port') != '19999': SystemModelSetting.set('port', '19999') t = threading.Thread(target=func, args=()) t.setDaemon(True) t.start()
def make_apikey(url): from framework import SystemModelSetting url = url.format(ddns=SystemModelSetting.get('ddns')) if SystemModelSetting.get_bool('auth_use_apikey'): if url.find('?') == -1: url += '?' else: url += '&' url += 'apikey=%s' % SystemModelSetting.get('auth_apikey') return url
def make_apikey_url(cls, url): from framework import SystemModelSetting if not url.startswith('http'): url = SystemModelSetting.get('ddns') + url if SystemModelSetting.get_bool('auth_use_apikey'): if url.find('?') == -1: url += '?' else: url += '&' url += 'apikey=%s' % SystemModelSetting.get('auth_apikey') return url
def make_vod_m3u(cls): try: from lxml import etree as ET from system.model import ModelSetting as SystemModelSetting data = "#EXTM3U\n" root = ET.Element('tv') root.set('generator-info-name', "wavve") form = '#EXTINF:-1 tvg-id="{contentid}" tvg-name="{title}" tvh-chno="{channel_number}" tvg-logo="" group-title="์จ์ด๋ธ ์ต์ VOD",{title}\n{url}\n' ch_number = 1 for page in range(1, ModelSetting.get_int('wavve_vod_page') + 1): vod_list = Wavve.vod_newcontents(page=page)['list'] for info in vod_list: title = info['programtitle'] if info['episodenumber'] != '': title += ' (%sํ)' % info['episodenumber'] tmp = info['episodetitle'].find('Quick VOD') if tmp != -1: title += info['episodetitle'][tmp - 2:] video_url = '%s/%s/wavve/api/streaming.m3u8?contentid=%s&type=%s' % ( SystemModelSetting.get('ddns'), package_name, info['contentid'], info['type']) if SystemModelSetting.get_bool('auth_use_apikey'): video_url += '&apikey=%s' % SystemModelSetting.get( 'auth_apikey') data += form.format(contentid=info['contentid'], title=title, channel_number=ch_number, logo='', url=video_url) channel_tag = ET.SubElement(root, 'channel') channel_tag.set('id', info['contentid']) #channel_tag.set('repeat-programs', 'true') display_name_tag = ET.SubElement(channel_tag, 'display-name') display_name_tag.text = '%s(%s)' % (title, ch_number) display_name_tag = ET.SubElement(channel_tag, 'display-number') display_name_tag.text = str(ch_number) ch_number += 1 tree = ET.ElementTree(root) ret = ET.tostring(root, pretty_print=True, xml_declaration=True, encoding="utf-8") return data, ret except Exception as e: logger.error('Exception:%s', e) logger.error(traceback.format_exc())
def get_guid(): try: tmp = SystemModelSetting.get('wavve_guid') if tmp != '': return tmp except: pass import hashlib m = hashlib.md5() def GenerateID(media): from datetime import datetime requesttime = datetime.now().strftime('%Y%m%d%H%M%S') randomstr = GenerateRandomString(5) uuid = randomstr + media + requesttime return uuid def GenerateRandomString(num): from random import randint rstr = "" for i in range(0, num): s = str(randint(1, 5)) rstr += s return rstr uuid = GenerateID("POOQ") m.update(uuid) return str(m.hexdigest())
def get_m3u(trans=False): try: M3U_FORMAT = '#EXTINF:-1 tvg-id=\"%s\" tvg-name=\"%s\" tvg-chno=\"%s\" tvg-logo=\"%s\" group-title=\"%s\",%s\n%s\n' m3u = '#EXTM3U\n' data = LogicHDHomerun.channel_list(only_use=True) ddns = SystemModelSetting.get('ddns') for c in data: try: import epg ins = epg.ModelEpgMakerChannel.get_instance_by_name( c.match_epg_name) except: ins = None #m3u += M3U_FORMAT % (c.source+'|' + c.source_id, c.title, c.epg_entity.icon, c.source, c.title, url) url = c.url if trans: url = ddns + '/hdhomerun/trans.ts?source=' + py_urllib.quote_plus( url) m3u += M3U_FORMAT % (c.id, c.scan_name, c.ch_number, (ins.icon if ins is not None else ""), c.group_name, c.scan_name, url) except Exception as e: logger.error('Exception:%s', e) logger.error(traceback.format_exc()) return m3u
def search_api(cls, keyword): trans_papago_key = SystemModelSetting.get_list('trans_papago_key') for tmp in trans_papago_key: client_id, client_secret = tmp.split(',') try: if client_id == '' or client_id is None or client_secret == '' or client_secret is None: return text url = "https://openapi.naver.com/v1/search/movie.json?query=%s&display=100" % py_urllib.quote( str(keyword)) requesturl = py_urllib2.Request(url) requesturl.add_header("X-Naver-Client-Id", client_id) requesturl.add_header("X-Naver-Client-Secret", client_secret) #response = py_urllib2.urlopen(requesturl, data = data.encode("utf-8")) response = py_urllib2.urlopen(requesturl) if sys.version_info[0] == 2: data = json.load(response, encoding='utf8') else: data = json.load(response) rescode = response.getcode() if rescode == 200: return data else: continue except Exception as exception: logger.error('Exception:%s', exception) logger.error(traceback.format_exc())
def process_cached_feed(feed): try: # ์ด๋ฏธ ๋ด์ผ๋ก ๋ฐ์๋๊ฑฐ๋ฉด ํจ์ค entity = ModelOffcloud2Cache.get_by_magnet(feed.link) if entity is not None: return if feed.link_to_notify_status is not None and feed.link_to_notify_status == '1': return # sjva server์๊ฒ๋ง ์๋ฆฌ๋ ๊ฒ์ผ๋ก ๋ณ๊ฒฝ. ์๋ฒ๊ฐ ๋์ ๋ฟ๋ฆผ telegram = { 'title': feed.title, 'magnet': feed.link, 'who': SystemModelSetting.get('id') } telegram_text = json.dumps(telegram, indent=2) try: import requests sjva_server_url = 'https://server.sjva.me/ss/api/off_cache2' data = {'data': telegram_text} res = requests.post(sjva_server_url, data=data) tmp = res.text feed.link_to_notify_status = '1' db.session.add(feed) db.session.commit() if res.text == 'append': return True elif res.text == 'exist': return False except Exception as e: logger.error('Exception:%s', e) logger.error(traceback.format_exc()) return True except Exception as e: logger.error(e) logger.error(traceback.format_exc())
def send_telegram_message(item): try: msg = '๐ ๋ด ๋ค์ด๋ก๋ - AV ์ฒ๋ฆฌ๊ฒฐ๊ณผ\n' msg += '์ ๋ชฉ : [%s] %s (%s)\n' % (item.code, item.title, item.date) msg += 'ํ์ผ : %s\n' % item.filename if item.download_status == 'true': status_str = 'โ์กฐ๊ฑด์ผ์น - ์์ฒญ' elif item.download_status == 'false': status_str = 'โํจ์ค ' elif item.download_status == 'no': status_str = '์๋ ๋ค์ด๋ก๋ ์ฌ์ฉ์ํจ' elif item.download_status == 'true_only_status': status_str = 'โ์กฐ๊ฑด์ผ์น - ์ํ๋ง' elif item.download_status == 'false_only_status': status_str = 'โ์กฐ๊ฑด๋ถ์ผ์น - ์ํ๋ง' msg += '๊ฒฐ๊ณผ : %s\n' % status_str msg += '%s/%s/list\n' % (SystemModelSetting.get('ddns'), package_name) msg += '๋ก๊ทธ\n' + item.log ToolBaseNotify.send_message(msg, message_id='bot_downloader_av_result') except Exception as e: logger.error('Exception:%s', e) logger.error(traceback.format_exc())
def get_actor_eng_name(cls, name): try: ret = {} url = 'https://search.daum.net/search?w=tot&q=%s' % (name) root = SiteUtil.get_tree( url, proxy_url=SystemModelSetting.get('site_daum_proxy'), headers=cls.default_headers, cookies=SystemLogicSite.get_daum_cookies()) for xpath in [ '//*[@id="prfColl"]/div/div/div/div[2]/div[2]/div[1]/span[2]', '//*[@id="prfColl"]/div/div/div/div[2]/div/div/span[2]' ]: tags = root.xpath(xpath) if tags: tmp = tags[0].text_content() #logger.debug(tmp) tmps = tmp.split(',') if len(tmps) == 1: ret = [tmps[0].strip()] else: ret = [x.strip() for x in tmps] #์ผ๋ณธ๋ฐฐ์ฐ๋์ ret2 = [] for x in ret: ret2.append(x) tmp = x.split(' ') if len(tmp) == 2: ret2.append('%s %s' % (tmp[1], tmp[0])) return ret2 except Exception as exception: logger.error('Exception:%s', exception) logger.error(traceback.format_exc())
def search(cls, keyword, daum_id=None, year=None, image_mode='0'): try: keyword = cls.get_search_name_from_original(keyword) ret = {} if daum_id is None: url = 'https://search.daum.net/search?q=%s' % (py_urllib.quote( str(keyword))) else: url = 'https://search.daum.net/search?q=%s&irk=%s&irt=tv-program&DA=TVP' % ( py_urllib.quote(str(keyword)), daum_id) root = SiteUtil.get_tree( url, proxy_url=SystemModelSetting.get('site_daum_proxy'), headers=cls.default_headers, cookies=SystemLogicSite.get_daum_cookies()) data = cls.get_show_info_on_home(root) #logger.debug(data) # KD58568 : ๋นํ์ธ๋ ๋ ์ผ if data is not None and data['code'] in ['KD58568']: data = None if data is None: ret['ret'] = 'empty' else: ret['ret'] = 'success' ret['data'] = data except Exception as exception: logger.error('Exception:%s', exception) logger.error(traceback.format_exc()) ret['ret'] = 'exception' ret['data'] = str(exception) return ret
def process_menu(self, sub, req): arg = P.ModelSetting.to_dict() if sub == 'setting': arg['tmp_pb_api'] = '%s/%s/api/podbbang/%s' % ( SystemModelSetting.get('ddns'), package_name, '12548') if SystemModelSetting.get_bool('auth_use_apikey'): arg['tmp_pb_api'] += '?apikey=%s' % SystemModelSetting.get( 'auth_apikey') return render_template( '{package_name}_{module_name}_{sub}.html'.format( package_name=P.package_name, module_name=self.name, sub=sub), arg=arg) return render_template('sample.html', title='%s - %s' % (package_name, sub))
def process_menu(self, sub, req): arg = P.ModelSetting.to_dict() if sub == 'setting': arg['sample'] = '%s/%s/api/google/rss?remote=[๊ตฌ๊ธ๋ฆฌ๋ชจํธ]&title=[์ ๋ชฉ]&desc=&image=&genre=' % ( SystemModelSetting.get('ddns'), package_name) if SystemModelSetting.get_bool('auth_use_apikey'): arg['sample'] += '&apikey=%s' % SystemModelSetting.get( 'auth_apikey') return render_template( '{package_name}_{module_name}_{sub}.html'.format( package_name=P.package_name, module_name=self.name, sub=sub), arg=arg) return render_template('sample.html', title='%s - %s' % (package_name, sub))
def proxy(sub): logger.debug('proxy %s %s', package_name, sub) try: if sub == 'discover.json': ddns = SystemModelSetting.get('ddns') data = { "FriendlyName": "HDHomeRun CONNECT", "ModelNumber": "HDHR4-2US", "FirmwareName": "hdhomerun4_atsc", "FirmwareVersion": "20190621", "DeviceID": "104E8010", "DeviceAuth": "UF4CFfWQh05c3jROcArmAZaf", "BaseURL": "%s/klive/proxy" % ddns, "LineupURL": "%s/klive/proxy/lineup.json" % ddns, "TunerCount": 20 } return jsonify(data) elif sub == 'lineup_status.json': data = { "ScanInProgress": 0, "ScanPossible": 1, "Source": "Cable", "SourceList": ["Antenna", "Cable"] } return jsonify(data) elif sub == 'lineup.json': lineup = [] custom_list = LogicKlive.get_saved_custom_instance() ddns = SystemModelSetting.get('ddns') apikey = None if SystemModelSetting.get_bool('auth_use_apikey'): apikey = SystemModelSetting.get('auth_apikey') for c in custom_list: tmp = c.get_m3u8(ddns, 'plex', apikey) lineup.append({ 'GuideNumber': str(c.number), 'GuideName': c.title, 'URL': tmp }) return jsonify(lineup) except Exception as e: logger.error('Exception:%s', e) logger.error(traceback.format_exc())
def add_download_sub(db_id, index): try: import downloader item = ModelMovieItem.get_by_id(db_id) is_available_normal_download = downloader.Logic.is_available_normal_download() if is_available_normal_download and item.sub is not None: for idx, dummy in enumerate(item.sub): if index == -1 or idx == index: url = '%s/%s/api/attach?id=%s_%s' % (SystemModelSetting.get('ddns'), package_name, item.id, idx) if SystemModelSetting.get_bool('auth_use_apikey'): url += '&apikey=%s' % SystemModelSetting.get('auth_apikey') downloader.Logic.add_download2(url, ModelSetting.get('torrent_program'), ModelSetting.get('path'), request_type=package_name, request_sub_type='', server_id='movie_%s_%s_%s' % (item.server_id, item.file_count, item.total_size), magnet=item.magnet ) return True return False except Exception as e: logger.error('Exception:%s', e) logger.error(traceback.format_exc()) return False
def get_response_daum(cls, url, post_data=None): from system.logic_site import SystemLogicSite from framework import SystemModelSetting res = cls.get_response( url, proxy_url=SystemModelSetting.get('site_daum_proxy'), headers=SystemLogicSite.daum_headers, post_data=post_data, cookies=SystemLogicSite.get_daum_cookies()) return res
def change_redirect_data(cls, data, proxy=None): try: #logger.debug(data) from system.model import ModelSetting as SystemModelSetting tmp = re.compile(r'http(.*?)$', re.MULTILINE).finditer(data) for m in tmp: u = m.group(0) u2 = '{ddns}/{package_name}/api/redirect?url={url}'.format(ddns=SystemModelSetting.get('ddns'), package_name=package_name, url=urllib.quote(u)) if SystemModelSetting.get_bool('auth_use_apikey'): u2 += '&apikey={apikey}'.format(apikey=SystemModelSetting.get('auth_apikey')) if proxy is not None: u2 += '&proxy=%s' % proxy data = data.replace(u, u2) #logger.debug(data) return data except Exception as e: logger.error('Exception:%s', e) logger.error(traceback.format_exc())
def make_info_json(cls, info, plugin_py_filepath): try: from framework import SystemModelSetting if info['developer'] == SystemModelSetting.get('sjva_me_user_id'): from tool_base import ToolUtil filename = os.path.join(os.path.dirname(plugin_py_filepath), 'info.json') ToolUtil.save_dict(info, filename) except Exception as exception: logger.error('Exception:%s', exception) logger.error(traceback.format_exc())
def get_text_daum(cls, url, post_data=None): from system.logic_site import SystemLogicSite cookies = SystemLogicSite.get_daum_cookies() from framework import SystemModelSetting proxy_url = SystemModelSetting.get('site_daum_proxy') from .site_daum import SiteDaum headers = SiteDaum.default_headers res = cls.get_response(url, proxy_url=proxy_url, headers=headers, post_data=post_data, cookies=cookies) return res.text
def process_telegram_data(data): try: ret = ModelMovieItem.process_telegram_data(data) #logger.debug('telegram bot receive. is exist : %s', ret) if ret is not None: if ModelSetting.get_bool('receive_info_send_telegram'): msg = '๐ ์ํ ์ ๋ณด ์์ \n' msg += '์ ๋ชฉ : %s (%s)\n' % (ret.movie_title, ret.movie_year) msg += 'ํ์ผ : %s\n' % ret.filename url = '%s/%s/api/add_download?id=%s' % (SystemModelSetting.get('ddns'), package_name, ret.id) if SystemModelSetting.get_bool('auth_use_apikey'): url += '&apikey=%s' % SystemModelSetting.get('auth_apikey') if app.config['config']['is_server']: msg += '\n' + ret.magnet + '\n' else: msg += '\nโ ๋ค์ด๋ก๋ ์ถ๊ฐ\n<%s>\n' % url #msg += '\nโ ๋ค์ด๋ก๋ ์ถ๊ฐ\n<%s>\n' % url try: if ret.movie_title is not None: if ret.movie_target == 'imdb': url = 'https://www.imdb.com/title/%s' % ret.movie_id msg += '\nโ IMDB ์ ๋ณด\n%s' % url else: url = 'https://movie.daum.net/moviedb/main?movieId=%s' % (ret.movie_id) msg += '\nโ Daum ์ ๋ณด\n%s' % url except Exception as e: logger.error('Exception:%s', e) logger.error(traceback.format_exc()) ToolBaseNotify.send_message(msg, image_url=ret.daum_poster, message_id='bot_downloader_movie_receive') LogicNormal.invoke() try: if app.config['config']['is_server']: from tool_expand import TorrentProcess TorrentProcess.receive_new_data(ret, package_name) except: pass except Exception as e: logger.error('Exception:%s', e) logger.error(traceback.format_exc())
def info2(self, code, SiteClass): image_mode = ModelSetting.get( 'jav_censored_{site_name}_image_mode'.format( site_name=SiteClass.site_name)) if SiteClass.site_name == 'dmm': data = SiteClass.info( code, proxy_url=ModelSetting.get( 'jav_censored_{site_name}_proxy_url'.format( site_name=SiteClass.site_name)) if ModelSetting.get_bool( 'jav_censored_{site_name}_use_proxy'.format( site_name=SiteClass.site_name)) else None, image_mode=image_mode, small_image_to_poster_list=ModelSetting.get_list( 'jav_censored_dmm_small_image_to_poster', ',')) else: data = SiteClass.info( code, proxy_url=ModelSetting.get( 'jav_censored_{site_name}_proxy_url'.format( site_name=SiteClass.site_name)) if ModelSetting.get_bool( 'jav_censored_{site_name}_use_proxy'.format( site_name=SiteClass.site_name)) else None, image_mode=image_mode) if data['ret'] == 'success': ret = data['data'] if ModelSetting.get_bool( 'jav_censored_use_sjva' ) and image_mode == '3' and SystemModelSetting.get( 'trans_type' ) == '1' and SystemModelSetting.get('trans_google_api_key') != '': MetadataServerUtil.set_metadata_jav_censored( code, ret, ret['title'].lower()) return ret
def getpermissionforcontent(contentid, contenttype='movie'): try: param = get_baseparameter() param['contentid'] = contentid param['contenttype'] = contenttype param['credential'] = SystemModelSetting.get('site_wavve_credential') url = "%s/getpermissionforcontent?%s" % (config['base_url'], py_urllib.urlencode(param)) response = session.get(url, headers=config['headers']) data = response.json() return data except Exception as exception: logger.error('Exception:%s', exception) logger.error(traceback.format_exc())
def get_tree_daum(cls, url, post_data=None): from system.logic_site import SystemLogicSite cookies = SystemLogicSite.get_daum_cookies() from framework import SystemModelSetting proxy_url = SystemModelSetting.get('site_daum_proxy') from .site_daum import SiteDaum headers = SiteDaum.default_headers text = cls.get_text(url, proxy_url=proxy_url, headers=headers, post_data=post_data, cookies=cookies) if text is None: return return html.fromstring(text)
def set_metadata(cls, code, data, keyword): try: from framework import py_urllib url = '{server_plugin_ddns}/server/normal/metadata/set'.format( server_plugin_ddns=server_plugin_ddns) param = { 'code': code, 'data': json.dumps(data), 'user': SystemModelSetting.get('sjva_me_user_id'), 'keyword': keyword } #logger.debug(param) data = requests.post(url, data=param).json() if data['ret'] == 'success': logger.info('%s Data save success. Thanks!!!!', code) except Exception as exception: logger.error('metaserver connection fail.. set_metadata')