Exemple #1
0
def alert():
    if request.method == 'POST':
        _type = request.form.get('type')
        data = request.form.get('data')
        disabled = request.form.get('disable', False)

        disabled = True if disabled == 'on' else False

        text = 'type={0}\ntext={1}\ndisabled={2}\n'.format(_type, data, disabled)
        result, err = Utility.safe_write_to_file(alerts_file, text, as_json=False)

        if err:
            current_app.logger.error('Failed to create new alert! Error: %s' % err)
            flash('error:Failed to setup alert, please check the log and try again...')
            return redirect(url_for('admin.dashboard'))

        update_alert_message(alerts_file)

    current_alert = {}

    if os.path.isfile(alerts_file):
        data, err = Utility.safe_read_from_file(alerts_file, as_json=False)
        if err:
            current_app.logger.error('Failed to read alert file! Error: %s' % err)
            flash('error:Failed to read alert file, please check the log and try again!!')
            return redirect(url_for('admin.dashboard'))
        current_alert = parse_alert_data(data)

    return render_template('admin/alert.html', data=current_alert)
Exemple #2
0
def notice_manage():
    alerts_file = os.path.join(BASE_DIR, 'files', 'alerts.json')
    pdb.set_trace()

    action = request.form['notice_action']
    toggle_from = request.form['alert_stat']

    data, err = Utility.safe_read_from_file(alerts_file, as_json=True)
    if not err:
        if action == 'toggle':
            data['enabled'] = not data['enabled']
            ok, err = Utility.safe_write_to_file(alerts_file, data, as_json=True)
        elif action == 'replace':
            notice = request.form['setfor']
            parser = Notice(notice)

            try:
                key_count, ok = parser.parse()
                if ok:
                    # pdb.set_trace()
                    errors = parser.validate()
                    if errors:
                        return render_template('admin/site_message.html', error=errors, data=notice)

                    data = parser.result
            except Exception as e:
                return render_template('admin/site_message.html', error=e, data=notice)

            if ok:
                flash('info:Alert Disabled Successfully!')
                return redirect(url_for('admin.manage_notice'))
            else:
                flash('error:Falied To Disable Alert! Please Try Again...')
            return redirect(url_for('admin.manage_notice'))
Exemple #3
0
def manage_notice():
    data = {}
    alerts_file = os.path.join(BASE_DIR, 'files', 'alerts.json')

    if request.method == 'POST':
        notice = request.form['setfor']
        parser = Notice(notice)

        try:
            key_count, ok = parser.parse()
            if ok:
                # pdb.set_trace()
                errors = parser.validate()
                if errors:
                    return render_template('admin/site_message.html',
                                           error=errors,
                                           data=notice)
                data = parser.result
        except Exception as e:
            return render_template('admin/site_message.html',
                                   error=e,
                                   data=notice)

        ok, err = Utility.safe_write_to_file(alerts_file, data, as_json=True)
        if not ok:
            return render_template('admin/site_message.html', error=err)
        else:
            return render_template('admin/site_message.html', data=data)

    data, err = Utility.safe_read_from_file(alerts_file, as_json=True)
    if not err:
        return render_template('admin/site_message.html', data=data)
Exemple #4
0
def manage_notice():
    data = {}
    alerts_file = os.path.join(BASE_DIR, 'files', 'alerts.json')

    if request.method == 'POST':
        notice = request.form['setfor']
        parser = Notice(notice)

        try:
            key_count, ok = parser.parse()
            if ok:
                # pdb.set_trace()
                errors = parser.validate()
                if errors:
                    return render_template('admin/site_message.html', error=errors, data=notice)
                data = parser.result
        except Exception as e:
            return render_template('admin/site_message.html', error=e, data=notice)

        ok, err = Utility.safe_write_to_file(alerts_file, data, as_json=True)
        if not ok:
            return render_template('admin/site_message.html', error=err)
        else:
            return render_template('admin/site_message.html', data=data)

    data, err = Utility.safe_read_from_file(alerts_file, as_json=True)
    if not err:
        return render_template('admin/site_message.html', data=data)
Exemple #5
0
def view_counter():
    page_id = None
    if request.method == 'POST':
        data = json.loads(request.data)
        if 'page_title' not in data:
            return jsonify(view='Invalid Parameters Passed!!')

        title = data['page_title']
        page_id = Utility.get_md5_hash_of_title(title)
        current_app.logger.debug('Page Title : {0} & Page Id: {1}'.format(title, page_id))
        remote_ip = Utility.get_ip(request)
        update_page_count(page_id, title, remote_ip)

    result = page_view_stats.get_count(page_id)
    return jsonify(views=result['count'])
Exemple #6
0
    def update(self, page_title, is_page_id=False):
        if not is_page_id:
            page_id = Utility.get_md5_hash_of_title(page_title)
        else:
            page_id = page_title

        return self.db.update_count(page_id)
Exemple #7
0
    def update(self, page_title, is_page_id=False):
        if not is_page_id:
            page_id = Utility.get_md5_hash_of_title(page_title)
        else:
            page_id = page_title

        return self.db.update_count(page_id)
Exemple #8
0
def view_counter():
    page_id = None
    if request.method == 'POST':
        data = json.loads(request.data)
        if 'page_title' not in data:
            return jsonify(view='Invalid Parameters Passed!!')

        title = data['page_title']
        page_id = Utility.get_md5_hash_of_title(title)
        current_app.logger.debug('Page Title : {0} & Page Id: {1}'.format(
            title, page_id))
        remote_ip = Utility.get_ip(request)
        update_page_count(page_id, title, remote_ip)

    result = page_view_stats.get_count(page_id)
    return jsonify(views=result['count'])
Exemple #9
0
def get_doc(doc_path):
    ext = os.path.basename(doc_path).split('.')[-1]
    if ext and ext in app.config['DOCS_VALID_EXTS']:
        stat.update_download_count(doc_path, Utility.get_ip(request))
        return send_from_directory(app.config['DOCS_FOLDER'], doc_path, as_attachment=True)
    else:
        abort(404)
Exemple #10
0
    def insert(self, page_id, page_title):
        if not page_id:
            page_id = Utility.get_md5_hash_of_title(page_title)

        if self.is_existing_page(page_id):
            return self.update(page_id)
        else:
            return self.db.add_page(page_id, page_title)
Exemple #11
0
    def insert(self, page_id, page_title):
        if not page_id:
            page_id = Utility.get_md5_hash_of_title(page_title)

        if self.is_existing_page(page_id):
            return self.update(page_id)
        else:
            return self.db.add_page(page_id, page_title)
Exemple #12
0
def get_doc(doc_path):
    ext = os.path.basename(doc_path).split('.')[-1]
    if ext and ext in app.config['DOCS_VALID_EXTS']:
        stat.update_download_count(doc_path, Utility.get_ip(request))
        return send_from_directory(app.config['DOCS_FOLDER'],
                                   doc_path,
                                   as_attachment=True)
    else:
        abort(404)
Exemple #13
0
def update_alert_message(alert_file):
    data, err = Utility.safe_read_from_file(alert_file, as_json=False)
    if not err:
        # Ignore error to read file
        current = parse_alert_data(data)

        if current:
            app.jinja_env.globals['alert'] = current
            #flash('info:New Alert Message Setup Successfully!!')
            log.debug('Setup new alert message!')
    else:
        log.error('Failed to setup alert in jinja evn variable, Error: %s' % err)
Exemple #14
0
def notice_manage():
    alerts_file = os.path.join(BASE_DIR, 'files', 'alerts.json')
    pdb.set_trace()

    action = request.form['notice_action']
    toggle_from = request.form['alert_stat']

    data, err = Utility.safe_read_from_file(alerts_file, as_json=True)
    if not err:
        if action == 'toggle':
            data['enabled'] = not data['enabled']
            ok, err = Utility.safe_write_to_file(alerts_file,
                                                 data,
                                                 as_json=True)
        elif action == 'replace':
            notice = request.form['setfor']
            parser = Notice(notice)

            try:
                key_count, ok = parser.parse()
                if ok:
                    # pdb.set_trace()
                    errors = parser.validate()
                    if errors:
                        return render_template('admin/site_message.html',
                                               error=errors,
                                               data=notice)

                    data = parser.result
            except Exception as e:
                return render_template('admin/site_message.html',
                                       error=e,
                                       data=notice)

            if ok:
                flash('info:Alert Disabled Successfully!')
                return redirect(url_for('admin.manage_notice'))
            else:
                flash('error:Falied To Disable Alert! Please Try Again...')
            return redirect(url_for('admin.manage_notice'))
Exemple #15
0
def update_alert_message(alert_file):
    data, err = Utility.safe_read_from_file(alert_file, as_json=False)
    if not err:
        # Ignore error to read file
        current = parse_alert_data(data)

        if current:
            app.jinja_env.globals['alert'] = current
            #flash('info:New Alert Message Setup Successfully!!')
            log.debug('Setup new alert message!')
    else:
        log.error('Failed to setup alert in jinja evn variable, Error: %s' %
                  err)
Exemple #16
0
def alert():
    if request.method == 'POST':
        _type = request.form.get('type')
        data = request.form.get('data')
        disabled = request.form.get('disable', False)

        disabled = True if disabled == 'on' else False

        text = 'type={0}\ntext={1}\ndisabled={2}\n'.format(
            _type, data, disabled)
        result, err = Utility.safe_write_to_file(alerts_file,
                                                 text,
                                                 as_json=False)

        if err:
            current_app.logger.error('Failed to create new alert! Error: %s' %
                                     err)
            flash(
                'error:Failed to setup alert, please check the log and try again...'
            )
            return redirect(url_for('admin.dashboard'))

        update_alert_message(alerts_file)

    current_alert = {}

    if os.path.isfile(alerts_file):
        data, err = Utility.safe_read_from_file(alerts_file, as_json=False)
        if err:
            current_app.logger.error('Failed to read alert file! Error: %s' %
                                     err)
            flash(
                'error:Failed to read alert file, please check the log and try again!!'
            )
            return redirect(url_for('admin.dashboard'))
        current_alert = parse_alert_data(data)

    return render_template('admin/alert.html', data=current_alert)
Exemple #17
0
def update_page_count(page_id, title, remote_ip):
    joined = '{0}:{1}'.format(page_id, remote_ip)

    if joined in dumb_cache:
        last_time = dumb_cache[joined]
        now = time.time()
        if now - last_time > 180:
            if page_view_stats.update(page_id, is_page_id=True):
                dumb_cache[joined] = now
    else:
        if page_view_stats.insert(page_id, Utility.quote_string(title)):
            dumb_cache[joined] = time.time()
        else:
            current_app.logger.error('Failed to insert page_id [{0}] in page_view_counter'.format(page_id))
Exemple #18
0
def update_page_count(page_id, title, remote_ip):
    joined = '{0}:{1}'.format(page_id, remote_ip)

    if joined in dumb_cache:
        last_time = dumb_cache[joined]
        now = time.time()
        if now - last_time > 180:
            if page_view_stats.update(page_id, is_page_id=True):
                dumb_cache[joined] = now
    else:
        if page_view_stats.insert(page_id, Utility.quote_string(title)):
            dumb_cache[joined] = time.time()
        else:
            current_app.logger.error(
                'Failed to insert page_id [{0}] in page_view_counter'.format(
                    page_id))
Exemple #19
0
def toAscii(text):
    return Utility.unquote_string(text)