Пример #1
0
    def match_motion_start_times_with_users(self, arg_input_video_folder,
                                            arg_user_handler: UserHandler):
        motion_times_files = MotionFilesHandler.get_motion_file_list(
            arg_input_video_folder)

        for motion_file in motion_times_files:
            tmp_motion_start_info = MotionFilesHandler.read_motion_file(
                motion_file)
            for index, motion_start_row in tmp_motion_start_info.iterrows():
                user = arg_user_handler.find_valid_user_match(
                    motion_start_row['time'], self.obstacle_approach_location)
                if user != 0:
                    #print("User match found: " + user.name)
                    video_file = MotionFilesHandler.get_associated_video_file(
                        motion_file)
                    if video_file:  # The video file exists
                        user.add_obstacle_match(
                            motion_start_row['time'], video_file,
                            motion_start_row['bbox'])  # Add info to user data
                        logger.debug("Adding match entry to user: "******"No associated video file found for motion file: "
                            + motion_file.path)

        arg_user_handler.filter_obstacle_matches(
            self.user_match_minimum_interval)
        return
Пример #2
0
def editPost():
    if require_login(): return redirect(url_for(".login"))

    msgID = request.form['msgID']

    post_handler = PostHandler(posts_collection)
    user_handler = UserHandler(users_collection)

    user_handler.login(session["user_data"]["login"])

    if user_handler.current.ban_level >= 2:
        return redirect(url_for(".home"))

    posto = post_handler.postFor(msgID)
    if posto not in post_handler.posts:
        return redirect(url_for(".home"))

    message = posto.message
    renderedPosts = post_handler.getRendered(user_handler)

    session['user_type'] = 'admin' if user_handler.current.is_admin else 'reg'

    return render_template('home.html',
                           posts=renderedPosts,
                           edit_id=msgID,
                           reply_id='x',
                           message=message)
Пример #3
0
 def __init__(self, bot_key):
     super(Bot, self).__init__()
     self._updater = Updater(bot_key)
     self._sessions = {}
     self._wait_text = None
     self._db = Database('bot', 'YWqYvadPZ35eDHDs')
     self._users_handler = UserHandler(self._updater, self._db, self._sessions.keys())
Пример #4
0
def getNewPosts():
    post_handler = PostHandler(posts_collection)
    user_handler = UserHandler(users_collection)

    user_handler.login(session["user_data"]["login"])

    renderedPosts = post_handler.getRendered(user_handler)

    return str(renderedPosts)
Пример #5
0
class Bot:
    def __init__(self, bot_key):
        super(Bot, self).__init__()
        self._updater = Updater(bot_key)
        self._sessions = {}
        self._wait_text = None
        self._db = Database('bot', 'YWqYvadPZ35eDHDs')
        self._users_handler = UserHandler(self._updater, self._db, self._sessions.keys())

    def start(self):
        self._add_base_handlers()
        self._updater.start_polling()
        self._updater.idle()

    def _add_base_handlers(self):
        self._updater.dispatcher.add_handler(CommandHandler("start", self._start_callback))
        self._updater.dispatcher.add_handler(CallbackQueryHandler(self._query_handler))

    def _query_handler(self, bot, update):
        t_id = update.effective_chat.id

        if get_query_text(update) == "BOT_RESET_CALLBACK":
            self._bot_reset_session_callback(bot, t_id, update)
            return
        elif get_query_text(update) == "BOT_NOT_RESET_CALLBACK":
            update.effective_message.edit_text("Перезагрузка отменена")
            return

        if t_id not in self._sessions.keys():
            return self._users_handler.query_callback(bot, update)
        else:
            return self._sessions[t_id].query_callback(bot, update)

    def _bot_reset_session_callback(self, bot, t_id, update):
        update.effective_message.edit_text("Бот перезагружен.")
        self._sessions.pop(t_id)
        self._start_callback(bot, update)

    def _start_callback(self, bot, update):
        t_id = update.effective_chat.id

        if t_id in self._sessions.keys():
            bot.send_message(chat_id=update.effective_chat.id,
                             text="Вы уверены, что хотите перезагрузить бота?",
                             reply_markup=KeyboardFactory.button("Да", "BOT_RESET_CALLBACK") + KeyboardFactory.button("Нет", "BOT_NOT_RESET_CALLBACK"))
            return

        if not self._db.check_permission(t_id):
            self._users_handler.query_handler(bot, update)
        else:
            self._init_session(bot, update)

    def _init_session(self, bot, update):
        self._sessions[update.effective_chat.id] = Session(bot, self._updater, update.effective_chat.id)
Пример #6
0
def deletePost():
    if require_login(): return redirect(url_for(".login"))

    post_handler = PostHandler(posts_collection)
    user_handler = UserHandler(users_collection)

    user_handler.login(session["user_data"]["login"])

    if user_handler.current.ban_level >= 2:
        return redirect(url_for(".home"))

    post_handler.deletePost(request.form['msgID'])

    return redirect(url_for(".home"))
Пример #7
0
    def write(self, data: discord.reader.VoiceData):
        """Analyse and convert received audio data.

        If the audio data is silence: run UserHandler received_silence until termination.
        If the audio data is not silence: add to UserHandler buffer.
        Create member user_handlers if they don't exist and ignore the bot itself."""
        # loop: asyncio.AbstractEventLoop
        # try:
        #     loop = asyncio.get_event_loop()
        # except RuntimeError:
        #     loop = asyncio.new_event_loop()
        #     asyncio.set_event_loop(loop)

        member: discord.Member = data.user
        pcm: bytes = data.data

        if member.bot:
            return

        if member.id not in self.user_handlers:
            self.user_handlers[member.id] = UserHandler(
                member, self.guild_path)

        user_handler = self.user_handlers[member.id]

        if isinstance(data.packet, discord.reader.SilencePacket):
            asyncio.run_coroutine_threadsafe(user_handler.receive_silence(),
                                             self.loop)
            # future = asyncio.ensure_future(user_handler.receive_silence())
            # loop.run_until_complete(future)
        else:
            user_handler.receive_audio(pcm)
Пример #8
0
    def onSub(user_open_ID):
        user_dict = WeChatHandler().getUserInfo(user_open_ID)
        user_priority = UserHandler.verify_user(user_open_ID)
        if user_priority == -1:
            user_insert_sql = "INSERT into UserInfo VALUES ('%s', 'N', '%s', null, '%s', null, null, null, '%s', null, " \
                              "null, null, null)" % (
                              user_open_ID, user_dict['nickname'], TypeDef.sex_dict[user_dict['sex']],
                              (user_dict['city'] + ',' + user_dict['province'] + ',' + user_dict[
                                  'country']).replace("\'", "\\\'"))
            DBHandler().insert(user_insert_sql)
        else:
            update_sql = "UPDATE UserInfo SET WechatName = '%s',Sex='%s',Address='%s' WHERE Open_ID = '%s'"\
                         %  (user_dict['nickname'], TypeDef.sex_dict[user_dict['sex']],
                         (user_dict['city'] + ',' + user_dict['province'] + ',' + user_dict['country']).replace("\'", "\\\'"),
                            user_open_ID)
            DBHandler().update(update_sql)

        return_msg = Resource.getMsg("WlcMsg", user_dict['language'])
        '''
        if user_dict['language'] == "zh_CN":
            sql_query = "Select IDX,Media_ID,Title from HistoryArticle"
        else:
            sql_query = "Select IDX,Media_ID,Title from HistoryArticle WHERE Language = 'en'"
        results = DBHandler().select(sql_query)

        for line in results[1]:
            return_msg = return_msg + str(line[0]) + "..." + line[2] + "\n"

        threading.Timer(3, WeChatHandler().sendMsgViaCust,
                        (Resource.getMsg("Menu", user_dict['language']), "touser", user_open_ID)
                        ).start()
       '''
        return return_msg
Пример #9
0
def home():
    if require_login(): return redirect(url_for(".login"))

    if "echoCMDS" not in session:
        session["echoCMDS"] = True

    post_handler = PostHandler(posts_collection)
    user_handler = UserHandler(users_collection)

    user_handler.login(session["user_data"]["login"])

    session['user_type'] = 'admin' if user_handler.current.is_admin else 'reg'

    if user_handler.current.ban_level >= 2:
        print("GTFO You Stupid Satan")
        return redirect(url_for(".meme"))

    renderedPosts = post_handler.getRendered(user_handler)

    return render_template('home.html',
                           posts=renderedPosts,
                           reply_id='x',
                           edit_id="x")
Пример #10
0
 def __init__(self, browser):
     self.commonfunctionality = CommonFunctionality(browser)
     self.personal_information = PersonalInformation(browser)
     self.account_handler = AccountHandler(browser)
     self.add_partition = AddPartition(browser)
     self.phone_number = PhoneNumber(browser)
     self.user_handler = UserHandler(browser)
     self.VCFE_Handler = VCFEHandler(browser)
     self.Invoices_Payments = InvoicesPayments(browser)
     self.prog_button_handler = ProgButtonHandler(browser)
     self.aobfunctionality = AobFunctionality(browser)
     self.BCAOperations = BCAOperations(browser)
     self.addonfeature = AddonFeature(browser)
     self.profileFunctionality = ProfileFunctionality(browser)
     self.service = Service(browser)
     self.phoneServiceUsers = PhoneUsers(browser)
Пример #11
0
def authorized():
    resp = github.authorized_response()
    if resp is None:
        session.clear()
        message = 'Access denied: reason=' + request.args[
            'error'] + ' error=' + request.args[
                'error_description'] + ' full=' + pprint.pformat(request.args)
        session["do_flash"] = True
        session["flash_message"] = message
        session["flash_mode"] = "warning"
        return redirect(url_for(".welcome"))
    else:
        try:
            session['github_token'] = (
                resp['access_token'], ''
            )  #save the token to prove that the user logged in
            session['user_data'] = github.get('user').data
            message = 'You were successfully logged in as ' + session[
                'user_data']['login']
        except Exception as inst:
            session.clear()
            print(inst)
            message = 'Unable to login, please try again.  '
            session["do_flash"] = True
            session["flash_message"] = message
            session["flash_mode"] = "danger"
            return redirect(url_for(".welcome"))

    # post_handler = PostHandler(posts_collection)
    user_handler = UserHandler(users_collection)

    if not user_handler.has(session["user_data"]["login"]):
        user_handler.newUsr(session["user_data"]["login"])
    else:
        user_handler.login(session["user_data"]["login"])

    return redirect(url_for(".home"))
Пример #12
0
def createNewclip(username, password, clip_outer_id, tested):
    user = UserHandler()
    return user.createClip(username, password, clip_outer_id, tested)
Пример #13
0
def addStu(username, password):
    user = UserHandler()
    return user.createStudent(username, password)
Пример #14
0
def post():
    if require_login(): return redirect(url_for(".login"))

    post_handler = PostHandler(posts_collection)
    user_handler = UserHandler(users_collection)

    user_handler.login(session["user_data"]["login"])

    if user_handler.current.ban_level >= 2:
        return redirect(url_for(".home"))

    msg = request.form['message']

    if str(msg).startswith("#!"):
        cmds = msg.split(' ')

        if not user_handler.current.is_admin:
            msg = "$$This noob tried to use an admin command$$"

        elif cmds[1] == "ban":
            id = int(cmds[2])
            usr = user_handler.usrFor(id)
            level = int(cmds[3])
            usr.ban_level = level
            msg = "$$Set ban level for %s to %i$$" % (usr.name, level)

        elif cmds[1] == "unban":
            id = int(cmds[2])
            usr = user_handler.usrFor(id)
            usr.ban_level = 0
            msg = "$$Unbanned %s (%i)$$" % (usr.name, id)

        elif cmds[1] == "makeadmin":
            id = int(cmds[2])
            user_handler.makeAdmin(id)
            usr = user_handler.usrFor(id)
            msg = "$$Made %s an Admin$$" % (usr.name)

        elif cmds[1] == "noadmin":
            id = int(cmds[2])
            user_handler.unAdmin(id)
            usr = user_handler.usrFor(id)
            msg = "$$Revoked Admin privileges from %s$$" % (usr.name)

        elif cmds[1] == "toggleecho":
            session["echoCMDS"] = not session["echoCMDS"]
            msg = "$$Toggle command echo$$"

        elif cmds[1] == "clearforum":
            post_handler.clear()
            msg = "$$Cleared Forum$$"

        elif cmds[1] == "lookat":
            if cmds[2] == "post":
                id = int(cmds[3])
                post = post_handler.postFor(id)
                msg = post.rep()

            elif cmds[2] == "user":
                nm = cmds[3]
                user = user_handler.usrForName(nm)
                msg = user.rep()

        if not session["echoCMDS"]:
            return redirect(url_for(".home"))

    with open("static/badWords.json") as bwFile:
        rawbw = bwFile.read()
    decd = me.decode(rawbw)
    bad_words = json.loads(decd)

    for word in msg.split(" "):
        if word.lower() in bad_words:
            msg = "$$This user is a horrible person and shall henceforth be known as \"Spawn of Satan\"$$"
            user_handler.banCurrent()

    if request.form['replyID'] == 'x' and request.form['editID'] == 'x':
        post_handler.post(msg, user_handler.current)

    elif not request.form['editID'] == 'x':
        post_handler.editPost(request.form['editID'], msg)

    else:
        post_handler.postReply(msg, user_handler.current,
                               request.form['replyID'])

    return redirect(url_for(".home"))