def privacy(client: Client, message: Message): if not Filters.private(message): text = '隱私設定請私訊我來進行設定不然會被看光光 ¯\_(ツ)_/¯' message.reply_text(text) return mongo = db_tools.use_mongo() query = {'chat.id': message.from_user.id} query_result = mongo.nintendo.find_one(query) if not isinstance(query_result, dict): text = '進行隱私設定前,請先使用 `/addfc` 來新增自己的好友代碼吧!\n' message.reply_text(text, parse_mode='markdown') return if 'privacy' not in query_result.keys(): privacy_status = False else: privacy_status = query_result['privacy'] text = '目前你的隱私狀態為 `{status}`\n' \ '意思是任何人都 `{visble}` 利用 `/findfc` 指令找到你喔!'.format( status='開啟' if privacy_status else '關閉', visble='不可以' if privacy_status else '可以' ) message.reply_text(text, parse_mode='markdown', reply_markup=keyboard.privacy())
def start_addfc(client: Client, message: Message): mongo = db_tools.use_mongo() query = {'chat.id': message.from_user.id} query_result = mongo.nintendo.find_one(query) if isinstance(query_result, dict): # found record text = '我的好友代碼是:`{fcode}`\n' \ '如果需要更新好友代碼請使用 `/addfc`'.format( fcode=query_result['fcode'] ) message.reply_text(text, parse_mode='markdown')
def myfc(client: Client, message: Message): mongo = db_tools.use_mongo() query = {'chat.id': message.from_user.id} query_result = mongo.nintendo.find_one(query) if not isinstance(query_result, dict): text = '你沒有設定過好友代碼唷,請先使用 `/addfc` 來新增自己的好友代碼吧!\n' message.reply_text(text, parse_mode='markdown') return # found record text = '我的好友代碼是:`{fcode}`'.format(fcode=query_result['fcode']) message.reply_text(text, parse_mode='markdown', reply_markup=keyboard.myfc())
def privacy(client: Client, message: CallbackQuery): action = message.data.split()[-1] if action == 'on': privacy = True else: privacy = False mongo = db_tools.use_mongo() query = {'chat.id': message.from_user.id} query_result = mongo.nintendo.find_one(query) if not isinstance(query_result, dict): text = '發生不明錯誤,無法查詢到該筆資料.' message.answer(text, show_alert=True) return if 'privacy' not in query_result.keys(): current = False else: current = query_result['privacy'] if current == privacy: message.answer("你已經設定好了啦 ヾ(⌒(ノシ'ω')ノシ", show_alert=True) return # update settings. # 忍術拖延戰術! message.answer('已更新設定', show_alert=True) query_ = copy.copy(query) query_.update({'privacy': privacy}) update = {'$set': query_} mongo.nintendo.update_one(query, update) text = '目前你的隱私狀態為 `{status}`\n' \ '意思是任何人都 `{visble}` 利用 `/findfc` 指令找到你喔!'.format( status='開啟' if privacy else '關閉', visble='不可以' if privacy else '可以' ) while True: try: message.edit_message_text(text, parse_mode='markdown', reply_markup=keyboard.privacy()) except FloodWait as wait: sleep(wait.x) else: break
def test_db_tools(): assert db_tools.use_mongo()