def query(raw_msg): query = MessageParser.CbkQuery(raw_msg, False) query.initOptionals() # warning user might not be in the database user = usersdb.getUser(query.person) log.debug(query.data) if query.data.startswith("rmacc"): scmd = query.data.split("_") ans = scmd[1] if ans == "yes": categoriesdb.deleteCategoryUser(user, mediavotedb) log.info("deleted categories") mediavotedb.deleteUserMedia(user) log.info("deleted media") usersdb.deleteUser(user) log.info("deleted user") BotWrappers.sendMessage(bot, user, "All data removed") bot.answerCallbackQuery(query.id, text='Removed') else: Handle.send_main_menu(bot, user) bot.answerCallbackQuery(query.id, text='Not removed') usersdb.update() elif query.data.startswith("remcat_"): st = query.data.split("_") if len(st) == 2: categoriesdb.deleteCategory(st[1]) bot.answerCallbackQuery(query.id, text='Deleted {}'.format(st[1])) else: bot.answerCallbackQuery(query.id, text='Delete cat somethings fucky') elif query.data.startswith("bancat_"): st = query.data.split("_") if len(st) == 2: categoriesdb.banCategory(st[1]) bot.answerCallbackQuery(query.id, text='Banned {}'.format(st[1])) else: bot.answerCallbackQuery(query.id, text='Ban cat somethings fucky') elif query.data.startswith("cp_"): # change page cmd_list = query.data.split("_") if len(cmd_list) < 4: raise Exception("list too short") page_n = int(cmd_list[2]) prev = True if cmd_list[3] == "prev" else False if cmd_list[1] == "cat": Handle.answer_categories_page(bot, user, categoriesdb, query, prev, page_n, mediavotedb) elif cmd_list[1] == "shortcat": Handle.answer_short_categories(bot, user, categoriesdb, query, prev, page_n) elif cmd_list[1] == "catlist": cat_list = categoriesdb.getValues() p = Pages.CategoryList(page_n, cat_list, query) p.check_answer(bot, user, prev) elif cmd_list[1] == "utop": ulist = Handle.getSortedUserList(usersdb) p = Pages.UserTopPages(page_n, ulist, query) p.check_answer(bot, user, prev) elif query.data.startswith("vote"): # increase the upvote count or downvote count cmd_list = query.data.split("_") upvote = True if cmd_list[1] == "up" else False dmedia = mediavotedb.database[int(cmd_list[2])] media = dmedia.getData() if user.hash_id in media.voters_id: bot.answerCallbackQuery(query.id, text='Already voted') else: if upvote: media.upvotes += 1 else: media.downvotes += 1 # add to the media the voters media.voters_id.append(user.hash_id) mediavotedb.setMedia(media) # give / subtract a point from the media owner media_user = usersdb.hGetUser(media.creator_hash_id) coin = str(NumberFormatter.PellaCoins(1)) if upvote: media_user.pella_coins += 1 BotWrappers.sendMessage( bot, media_user, "Somebody upvoted your media. You received " + coin) else: media_user.pella_coins -= 1 BotWrappers.sendMessage( bot, media_user, "Somebody downvoted your media. You lost " + coin) usersdb.setUser(media_user) # give a point to the voter user.pella_coins += 1 BotWrappers.sendMessage(bot, user, "You voted a media. You received " + coin) usersdb.setUser(user) mediavotedb.update() usersdb.update() bot.answerCallbackQuery(query.id, text='Voted!') elif query.data.startswith("hide"): # hide the picture scmd = query.data.split("_") uid = scmd[1] if uid not in user.no_show_ids: user.no_show_ids.append(uid) bot.answerCallbackQuery(query.id, text='Hidden') elif query.data.startswith("report"): # send report to the admins # send the creator a message with the option to ban/delete media # send the category creator a message with the option to delete the # media pass elif query.data.startswith("delete"): # delete picture if enough money pass else: bot.answerCallbackQuery(query.id, text='what?')