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)
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'))
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)
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'])
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)
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'])
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)
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)
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)
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)
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))
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))
def toAscii(text): return Utility.unquote_string(text)