Exemple #1
0
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')
Exemple #3
0
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())
Exemple #4
0
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()