def admin_process_event(bot, update): user = update.message.from_user chatid = update.message.chat.id userinput = update.message.text.strip()[1:] logger.info(userinput) print(INFO_STORE['user_token'], userinput) DB().admin_manage_events(INFO_STORE['user_token'], userinput) button_list = [InlineKeyboardButton(text='OK', callback_data = 'return_admin_panel')] menu = build_menu(button_list, n_cols = 1, header_buttons = None, footer_buttons = None) replytext = "Okay! Your previous decision has been recorded. Press 'OK' to return to the Admin Panel." if userinput[:-5] == 'approveEvent': logger.info("Admin has approved event") # PROCESS APPROVE WITH DATABASE HERE elif userinput[:-5] == 'rejectEvent': logger.info("Admin has rejected event") # PROCESS REJECT WITH DATABASE HERE # deletes message sent previously by bot (this is the previous admin panel message) bot.delete_message(chat_id=chatid, message_id=INFO_STORE[user.id]["BotMessageID"][-1]) msgsent = bot.send_message(text = replytext, chat_id = chatid, reply_markup = InlineKeyboardMarkup(menu), parse_mode=ParseMode.HTML) #appends message sent by bot itself - the very first message: start message INFO_STORE[user.id]["BotMessageID"].append(msgsent['message_id']) return
def confirm_event_registration(bot, update): user = update.message.from_user chatid = update.message.chat.id userinput = update.message.text.strip()[1:] logger.info(userinput) ## registerForEvent and user_token print(INFO_STORE) print(userinput, INFO_STORE['user_token']) DB().register_for_event(userinput, INFO_STORE['user_token']) replytext = "WOOTS! You have successfully registered for this event! Press /start if you wish to return to the main menu :)" if userinput[:-5] == 'registerForEvent': logger.info("User will be starting registration for this event.") # PROCESS APPROVE WITH DATABASE HERE # deletes message sent previously by bot (this is the previous admin panel message) bot.delete_message(chat_id=chatid, message_id=INFO_STORE[user.id]["BotMessageID"][-1]) msgsent = bot.send_message(text = replytext, chat_id = chatid, parse_mode=ParseMode.HTML) #appends message sent by bot itself - the very first message: start message INFO_STORE[user.id]["BotMessageID"].append(msgsent['message_id']) return ConversationHandler.END
def do_import_rtq(db, password='', newfileonly=False): loader = FileLoader() db = DB(password=password, db=db) db.create_table_deadlink() # print 'try loading', sys.argv[1] # lines = loader.load( # sys.argv[1]) newdate = str(db.get_last_day('deadlink')) if newdate == 'None': newfileonly = False for file in utils.dir_listfile('result'): rawdatestr = utils.stripDateStr(file).group(1) datestr = utils.parseDateString(rawdatestr) if newfileonly: if datestr > newdate: lines = loader.load(file, 7) print 'staring insert lines from', file, 'datetime is', datestr db.inserts_deadlink(lines, date=datestr) print 'insert completed' else: print datestr, 'skiped' else: lines = loader.load(file, 7) print 'staring insert lines from', file, 'datetime is', datestr db.inserts_deadlink(lines, date=datestr) print 'insert completed'
def browse_events(bot, update): query = update.callback_query chatid = query.message.chat.id messageid = query.message.message_id userinput = html.escape(query.data) logger.info(userinput) button_list = [InlineKeyboardButton(text='Back', callback_data = 'back')] menu = build_menu(button_list, n_cols = 1, header_buttons = None, footer_buttons = None) # CHECK WITH DATABASE HERE # IF EVENT IS PUBLISHED AND APPROVED, IT WILL BE LISTED HERE # published_events_list, published_eventIDs = getPublishedEvents() published_events_list = DB().generate_all_approved_events() BROWSE_EVENTS_MESSAGE = '' for i in range(len(published_events_list)): BROWSE_EVENTS_MESSAGE += "\n\n<b>EVENT ID: " + str(published_events_list[i][0]) + "</b>" BROWSE_EVENTS_MESSAGE += "\n\n" + str(published_events_list[i][1]) BROWSE_EVENTS_MESSAGE += "\n\n" +"/registerForEvent" + str(published_events_list[i][0]) replytext = einfo + "<b>Sup! List of cool events going on recently</b>:" replytext += "\n\n" + BROWSE_EVENTS_MESSAGE bot.editMessageText(text = replytext, chat_id = chatid, message_id = messageid, reply_markup = InlineKeyboardMarkup(menu), parse_mode=ParseMode.HTML) return AFTER_BROWSE_EVENTS
def __init__(self): self.db = DB() self.m = Tk() self.m.title("quiz") self.m.minsize(500, 500) self.m.configure(bg='#0a3d62') self.login() self.m.mainloop()
def do_import_rcu(db, password='', newfileonly=False): loader = FileLoader() db = DB(password=password, db=db) db.create_table_deadlink_classify() cates = ['aladdin', 'h5', 'lightaap', 'normal', 'siteapp', 'tc'] newdate = str(db.get_last_day('deadlink')) if newdate == 'None': newfileonly = False def httpcodeNot200(line): return line[2] != '200' for category in cates: for file in utils.dir_listfile( 'result', subdirprefix='result_spider_random_classfiy_url', fileSubPrefix='result_spider_10000_' + category): datestr = utils.getDateFromStr(file) if newfileonly: if datestr > newfileonly: lines = loader.load(file, 5) try: filteredlines = [ i for i in itertools.ifilter(httpcodeNot200, lines) ] except TypeError, e: print >> sys.stderr, e.args continue print 'deads', len( filteredlines ), 'staring insert lines from', file, 'datetime is', datestr db.inserts_deadlink_classify(filteredlines, cls=category, date=datestr) print 'insert completed' else: print datestr, 'skiped' else: lines = loader.load(file, 5) try: filteredlines = [ i for i in itertools.ifilter(httpcodeNot200, lines) ] except TypeError, e: print >> sys.stderr, e.args continue print 'deads', len( filteredlines ), 'staring insert lines from', file, 'datetime is', datestr db.inserts_deadlink_classify(filteredlines, cls=category, date=datestr) print 'insert completed'
def __init__(self): self.db = DB() self.m = Tk() self.m.title("quiz") self.m.minsize(500, 500) self.m.configure(bg='#0a3d62') # C=Canvas(self.m, bg="blue", height=250, width=300) # filename=PhotoImage(file="C:\\Users\\Designit\\PycharmProjects\\guirough\\trial.png") # background_label=Label(self.m, image=filename) # background_label.place(x=0, y=0, relwidth=1, relheight=1) # # C.pack( ) self.login() # self.cl=Button(self.m,text='close',lambda :self.m.close()) self.m.mainloop()
def admin_panel(bot, update): query = update.callback_query chatid = query.message.chat.id messageid = query.message.message_id userinput = html.escape(query.data) logger.info(userinput) button_list = [InlineKeyboardButton(text='Back', callback_data = 'back')] menu = build_menu(button_list, n_cols = 1, header_buttons = None, footer_buttons = None) # GET EVENTS AND VENUES REQUESTS CALL FROM FUNCTIONS # list_pending_events, list_pending_venues, list_eventIDs, list_venueIDs = getPendingEventsVenues() list_events = DB().generate_all_pending_events() ADMIN_MENU_MESSAGE = "\n\n" + einfo + "<b>List of Event Publications to be Approved:</b>" for i in range(len(list_events)): ADMIN_MENU_MESSAGE += "\n\n<b>EVENT ID: " + str(list_events[i][0]) + "</b>" ADMIN_MENU_MESSAGE += "\n\n" + str(list_events[i][1]) ADMIN_MENU_MESSAGE += "\n\n" +"/approveEvent" + str(list_events[i][0]) + " | " + "/rejectEvent" + str(list_events[i][0]) # ADMIN_MENU_MESSAGE += "\n\n" + einfo + "<b>List of Venue Bookings to be Approved:</b>" # for i in range(len(list_pending_venues)): # ADMIN_MENU_MESSAGE += "\n\n<b>VENUE ID: " + str(list_venueIDs[i]) + "</b>" # ADMIN_MENU_MESSAGE += "\n\n" + str(list_pending_venues[i]) # ADMIN_MENU_MESSAGE += "\n\n" + "/approveVenue" + list_venueIDs[i] + " | " + "/rejectVenue" + list_venueIDs[i] replytext = "<b>Here is the full list of pending events publication and venue booking requests for you to approve.</b>" replytext += ADMIN_MENU_MESSAGE bot.editMessageText(text = replytext, chat_id = chatid, message_id = messageid, reply_markup = InlineKeyboardMarkup(menu), parse_mode=ParseMode.HTML) return AFTER_ADMIN_PANEL
def __init__(self): try: # connect to database self.db = DB(database="energy_report_consumption") # Connecting to the IDA ICE API. pid = start() test = ida_lib.connect_to_ida(b"5945", pid.encode()) # connect to ida ice document self.building = call_ida_api_function( ida_lib.openDocument, b"d:\\ide_mine\\building_work1.idm") self.building_name = ida_get_name(self.building) self.energy_report = showList.showSingleChild( self.building, 'ENERGY-REPORT') self.standard_report_list = [ 'Lighting, facility', 'Electric cooling', 'HVAC aux', 'Fuel heating', 'Domestic hot water', 'Equipment, tenant' ] except: print("Exception in user code:") print('-' * 60) traceback.print_exc(file=sys.stdout) print('-' * 60)
def createEvent(cls, organizerID, name, description): return DB().create_event(User.currentUser.token, name, "", "", description)
def main(): updater = Updater(TELEGRAM_TOKEN) dispatcher=updater.dispatcher dispatcher.add_error_handler(error) conv_handler = ConversationHandler( entry_points = [CommandHandler('start', start)], states = { AFTER_START: [CallbackQueryHandler(callback = login, pattern = '^(login)$'), CallbackQueryHandler(callback = register, pattern = '^(register)$')], LOGIN: [MessageHandler(Filters.text, login_verify), CallbackQueryHandler(callback = start, pattern = '^(back)$')], VERIFY_LOGIN: [CallbackQueryHandler(callback = login, pattern = '^(login_fail)$'), CallbackQueryHandler(callback = dashboard, pattern = '^(login_success)$')], FIRST_NAME: [MessageHandler(Filters.text, showtoken), CallbackQueryHandler(callback = register, pattern = '^(register_back)$')], # LAST_NAME: [MessageHandler(Filters.text, showtoken), # CallbackQueryHandler(callback = register, pattern = '^(back)$')], NEWLOGIN: [CallbackQueryHandler(callback = dashboard, pattern = '^(dashboard)$'), CallbackQueryHandler(callback = showtoken, pattern = '^(back)$')], AFTER_DASHBOARD: [CallbackQueryHandler(callback = mark_attendance, pattern = '^(attendance)$'), CallbackQueryHandler(callback = browse_events, pattern = '^(browse_events)$'), CallbackQueryHandler(callback = manage_events, pattern = '^(manage_events)$'), CallbackQueryHandler(callback = admin_panel, pattern = '^(admin_panel)$'), CallbackQueryHandler(callback = log_out, pattern = '^(log_out)$')], AFTER_MARK_ATTENDANCE: [CallbackQueryHandler(callback = dashboard, pattern = '^(back)$'), MessageHandler(Filters.photo, check_QR_code)], AFTER_BROWSE_EVENTS: [CallbackQueryHandler(callback = dashboard, pattern = '^(back)$')], AFTER_MANAGE_EVENTS: [CallbackQueryHandler(callback = start_edit_event, pattern = '^[0-9]{4}$'), CallbackQueryHandler(callback = start_create_event, pattern = '^(create_event)$'), CallbackQueryHandler(callback = dashboard, pattern = '^(back)$')], AFTER_START_EDIT_EVENT: [CallbackQueryHandler(callback = cancel_date, pattern = '^(canceldate)'), CallbackQueryHandler(callback = rename_event, pattern = '^(rename_event)$'), CallbackQueryHandler(callback = edit_event_desc, pattern = '^(edit_desc)$'), CallbackQueryHandler(callback = book_venue, pattern = '^(book_venue)$'), CallbackQueryHandler(callback = request_publish_event, pattern = '^(request_publish)$'), CallbackQueryHandler(callback = manage_events, pattern = '^(back)$')], CREATE_NEW_EVENT: [MessageHandler(Filters.text, create_event_name), CallbackQueryHandler(callback = manage_events, pattern = '^(back)$')], CREATE_EVENT_DESC: [MessageHandler(Filters.text, final_create_event)], FINAL_CREATE_EVENT: [CallbackQueryHandler(callback = manage_events, pattern = '^(back_to_manage_events)$')], RENAME_EVENT: [MessageHandler(Filters.text, process_rename_event), CallbackQueryHandler(callback = start_edit_event, pattern = '^[0-9]{4}$')], RENAME_EVENT_CONFIRM: [CallbackQueryHandler(callback = start_edit_event, pattern = '^[0-9]{4}$')], EDIT_EVENT_DESCRIPTION: [MessageHandler(Filters.text, process_event_description_edit), CallbackQueryHandler(callback = start_edit_event, pattern = '^[0-9]{4}$')], EDIT_EVENT_DESCRIPTION_CONFIRM: [CallbackQueryHandler(callback = start_edit_event, pattern = '^[0-9]{4}$')], BOOK_VENUE: [CallbackQueryHandler(callback = start_edit_event, pattern = '^[0-9]{4}$'), CallbackQueryHandler(callback = book_timing, pattern = '^((?![0-9]{4}).)*$')], BOOK_TIMING: [CallbackQueryHandler(callback = inline_handler)], BOOK_TIMING_FINAL: [CallbackQueryHandler(callback = start_edit_event, pattern = '^[0-9]{4}$')], AFTER_ADMIN_PANEL: [CallbackQueryHandler(callback = dashboard, pattern = '^(back)$')] }, fallbacks = [CommandHandler('cancel', cancel)], allow_reentry = True ) dispatcher.add_handler(conv_handler) list_pending_events, list_pending_venues, list_eventIDs, list_venueIDs = getPendingEventsVenues() # create unique command for each approval and rejection of the events and venue bookings: for i in range(len(list_eventIDs)): approvecommandtext = 'approveEvent' + str(list_eventIDs[i]) rejectcommandtext = 'rejectEvent' + str(list_eventIDs[i]) dispatcher.add_handler(CommandHandler(command = approvecommandtext, callback = admin_process_event)) dispatcher.add_handler(CommandHandler(command = rejectcommandtext, callback = admin_process_event)) for i in range(len(list_venueIDs)): approvecommandtext = 'approveVenue' + str(list_venueIDs[i]) rejectcommandtext = 'rejectVenue' + str(list_venueIDs[i]) dispatcher.add_handler(CommandHandler(command = approvecommandtext, callback = admin_process_venue)) dispatcher.add_handler(CommandHandler(command = rejectcommandtext, callback = admin_process_venue)) dispatcher.add_handler(CallbackQueryHandler(callback = admin_panel, pattern = '^(return_admin_panel)$')) published_events_list = DB().generate_all_approved_events() # create unique command for each registration of events: for i in range(len(published_events_list)): registercommandtext = 'registerForEvent' + str(published_events_list[i][0]) dispatcher.add_handler(CommandHandler(command = registercommandtext, callback = confirm_event_registration)) updater.start_polling() updater.idle()
def do_test(db, password=''): db = DB(password=password, db=db) ret = db.get_last_day('classify') print 'last day is', ret
from dbhelper import DB from math import ceil import random as rand import bcrypt, cfg, os, shutil, json try: from BytesIO import BytesIO except ImportError: from io import BytesIO app = Flask(__name__) app.secret_key = "omgitsosecret" app.wsgi_app = ProxyFix(app.wsgi_app) login_manager = LoginManager() login_manager.init_app(app) db = DB() from utils import runHlsThread runHlsThread() app.jinja_env.globals['cfg'] = cfg @app.route("/videos", methods=["GET"]) @login_required def videos(): count = db.count("videos") n_pages = ceil(count / cfg.V_PAGE_ROWS) page = request.args.get('page') try:
def login(token): if (not DB().user_login(token)): return False User.currentUser = User("test", token) return DB().user_login(token)
def register(name): token = DB().add_user(name) User.currentUser = User(name, token) return token