def update_settings(self): # テンプレートを読み込む template = Common.read_file(Common.TEMPLATE_FILE) # 設定ファイルに書き出すトークンを設定 keys = list(self.data.keys()) if len(keys) == 0: namelist = 'n/a' else: namelist = ('|'.join(keys)) if len(keys) == 1: Common.SET('defaultname', keys[0]) # 設定ファイルを書き出す Common.write_file( Common.SETTINGS_FILE, template.format(tokenname=namelist, tokenname2=namelist))
def initializeChannel(): # リセット Common.SET('garapon_ch', '') # チャンネル情報を取得 response_body = Request().channel() if response_body: response_data = json.loads(response_body) if response_data['status'] == 1: # チャンネル情報をファイルに書き出す Common.write_json(Common.CHANNEL_FILE, response_data) # チャンネル数を設定 Common.SET('garapon_ch', '%d channels' % len(response_data['ch_list'].keys())) # 設定画面のテンプレートを読み込む template = Common.read_file(Common.TEMPLATE_FILE) # テンプレートに書き出すジャンル情報 genre = Genre().getLabel() # チャンネル情報とあわせてテンプレートに適用 source = template.format( channel=Channel().getLabel(), g0=genre['g0'], g00=genre['g00'], g01=genre['g01'], g02=genre['g02'], g03=genre['g03'], g04=genre['g04'], g05=genre['g05'], g06=genre['g06'], g07=genre['g07'], g08=genre['g08'], g09=genre['g09'], g10=genre['g10'], g11=genre['g11'] ) # 設定画面をファイルに書き出す Common.write_file(Common.SETTINGS_FILE, source) # 完了 Common.notify('Channel initialized successfully') return True else: Common.log('channel failed', response_body, error=True) Common.notify('Channel initialization failed') return False else: Common.log('empty response', error=True) Common.notify('Channel initialization failed') return False
def set_timer(self): # 現在時刻 now = time.time() if now > self.next_aired: xbmc.executebuiltin('Container.Refresh') Common.log('updateOnAir: xbmc.executebuiltin') else: # 遅延を設定 delay = self.next_aired - now + 30 if delay < 0: delay = 0 # idを設定 Common.write_file(Common.RESUME_FILE, '') id = os.path.getmtime(Common.RESUME_FILE) # スレッドを起動 threading.Timer(delay, self.check_onair, args=[id]).start() Common.log('updateOnAir: threading.Timer.start: %d %f' % (id, delay))
elif action == 'deletetoken': name = args.get('name') token = Token().lookup(name) if name and token: Token().delete(name, token) # settings.xmlを更新 Token().update_settings() # トークン一覧を表示 xbmc.executebuiltin('Container.Update(%s?action=token,replace)' % (sys.argv[0])) elif action == 'sendmessage': name = Common.GET('recipientname') message = Common.GET('message') # 送信データ values = {'action': 'send', 'name': name, 'message': message} xbmc.executebuiltin('RunPlugin(%s?%s)' % (sys.argv[0], urlencode(values))) elif action == 'send': name = args.get('name', Common.GET('defaultname')) token = Token().lookup(name) message = args.get('message', '') # メッセージを送信 if token and Token().send_message(token=token, message=message): # 送信に成功した場合は履歴に格納 cache_dir = os.path.join(Common.CACHE_PATH, name) if not os.path.isdir(cache_dir): os.makedirs(cache_dir) label = datetime.datetime.now().strftime('%Y%m%d-%H%M%S') path = os.path.join(cache_dir, label) Common.write_file(path, message)