def setUpClass(cls): # cls.app = create_app(config='config.TestingConfig') cls.app = create_app(host=args.host, front=args.front, config='config.TestingConfig') cls.client = cls.app.test_client() cls._ctx = cls.app.test_request_context() cls._ctx.push() session = sessionmaker(bind=engine)()
def setUpClass(cls): # cls.app = create_app(config='config.TestingConfig') cls.app = create_app(config='config.TestingConfig', apptype='profi') cls.client = cls.app.test_client() cls._ctx = cls.app.test_request_context() cls._ctx.push() session = sessionmaker(bind=engine)()
from flask import g, url_for from sqlalchemy.sql import text, and_ from profapp import create_app, prepare_connections import argparse import datetime if __name__ == '__main__': parser = argparse.ArgumentParser(description='send greetings message') parser.add_argument("--user_id") args = parser.parse_args() app = create_app(apptype='profi', config='config.CommandLineConfig') with app.app_context(): first_email_in = 3600 next_emails_in = 24 * 3600 prepare_connections(app)() have_unread = 'message_unread_count("user".id, NULL)>0 OR notification_unread_count("user".id)>0 OR contact_request_count("user".id)>0' not_logged_in_first = 'seconds_ago(last_seen_tm) > %s AND seconds_ago(last_seen_tm) < %s AND seconds_ago(last_informed_about_unread_communication_tm)>seconds_ago(last_seen_tm)' % (first_email_in, next_emails_in) not_logged_in_next = 'seconds_ago(last_seen_tm) > %s AND seconds_ago(last_informed_about_unread_communication_tm) > %s' % (first_email_in + next_emails_in, next_emails_in) send = text("(%s) AND ((%s) OR (%s))" % (have_unread, not_logged_in_first, not_logged_in_next)) def compile(q): print(q.statement.compile(compile_kwargs={"literal_binds": True}))
from profapp import create_app import argparse if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("--host", help="host", default='profireader.com') parser.add_argument("--port", help="port", default='8080', type=int) parser.add_argument("--front", help="frontend", default='n') args = parser.parse_args() app = create_app(host=args.host, front=args.front) #app.run(host='127.40.71.198', port=8080) #app.run(debug=True) app.run(host='0.0.0.0', port=args.port, debug=True) #app.run(debug=True) #app.run()
db_session = scoped_session( sessionmaker(autocommit=False, autoflush=False, bind=engine)) mm = db_session.query(Portal).filter_by(id=m.id).one() mm.logo = { 'selected_by_user': { 'crop': None, 'type': 'browse', 'image_file_id': m._delme_logo_file_id } } db_session.flush() db_session.commit() except Exception as e: print(e) pass if __name__ == '__main__': parser = argparse.ArgumentParser(description='') parser.add_argument("whattodo", help='articles') args = parser.parse_args() app = create_app(apptype='profi') with app.app_context(): prepare_connections(app)() #update_article_illustrations() #update_companies_logo() update_portals_logo() # update_users_avatar()
from profapp import create_app import argparse # if __name__ == '__main__': parser = argparse.ArgumentParser(description='profireader application type') parser.add_argument("apptype", default='profi') args = parser.parse_args() app = create_app(apptype=args.apptype) def app_run(): if args.apptype == 'front': port = 8888 elif args.apptype == 'file': port = 9001 elif args.apptype == 'static': port = 9000 else: port = 8080 app.run(port=port, host='0.0.0.0', debug=True) # app.run(debug=True) if __name__ == '__main__': app_run()
from __future__ import (absolute_import, division, print_function, unicode_literals) from builtins import * from future import standard_library standard_library.install_aliases() # see also: # http://python-future.org/what_else.html#what-else from flask import url_for from flask.ext.script import Manager # for making scripts with Flask see documentation: # http://flask-script.readthedocs.org/en/latest/ from profapp import create_app app = create_app() manager = Manager(app) @manager.command def list_routes(): """ the solution was found here: http://stackoverflow.com/a/19116758/4388451 and here http://stackoverflow.com/a/22651263/4388451 Python 2.6+ / Python 3.3+ compatibility package: python-future http://python-future.org/overview.html to use it run: python manage.py list_routes""" import urllib.parse
import sys sys.path.append('..') from profapp import create_app, load_database from profapp.utils import email_utils import argparse if __name__ == '__main__': parser = argparse.ArgumentParser(description='send test email') parser.add_argument("email") args = parser.parse_args() app = create_app(apptype='profi') with app.app_context(): load_database(app.config['SQLALCHEMY_DATABASE_URI'])() email_utils.send_email(subject='test', html='Go to <a href="http://ntaxa.com/">ntaxa</a>!<br/>Bye!', send_to=[args.email])
import sys sys.path.append('..') from profapp.models.portal import MemberCompanyPortal, MembershipPlanIssued from flask import g, url_for from sqlalchemy.sql import text, and_ from sqlalchemy import func from profapp import create_app, prepare_connections, utils import argparse import datetime app = create_app(apptype='change_expired_plan', config='config.CommandLineConfig') try: if __name__ == '__main__': parser = argparse.ArgumentParser(description='activate requested (and confirmed) plans') args = parser.parse_args() with app.app_context(): prepare_connections(app, echo=True)() memberships = g.db.query(MemberCompanyPortal) \ .join(MembershipPlanIssued, MemberCompanyPortal.current_membership_plan_issued_id == MembershipPlanIssued.id). \ filter(and_(MembershipPlanIssued.calculated_stopping_tm != None, MembershipPlanIssued.calculated_stopping_tm <= func.clock_timestamp())).all()
import sys import os, sys sys.path.insert(0, '/var/www/profireader') sys.path.insert(0, '/var/www/profireader/.venv/lib/python3.4/site-packages') #sys.path.insert(0, '/var/www/profireader/.venv/lib/python3.4/site-packages/psycopg2') #import _psycopg #sys.modules['psycopg2._psycopg'] = _psycopg #sys.path.pop(0) #PROJECT_DIR = '/var/www/profireader' #activate_this = os.path.join(PROJECT_DIR, 'bin', 'activate_this.py') #execfile(activate_this, dict(__file__=activate_this)) #sys.path.append(PROJECT_DIR) from profapp import create_app application=create_app()
import sys sys.path.append('..') import os from profapp.models.portal import Portal from profapp.models.third.google_analytics_management import GoogleAnalyticsManagement, CUSTOM_DIMENSION, CUSTOM_METRIC from flask import g, url_for from profapp import create_app, prepare_connections, utils import argparse app = create_app(apptype='check_google_analytics', config='config.CommandLineConfig') def check_custom_dimensions(portal, portal_dict, custom_dimensions, account, wp, also_fix=False): for cd in CUSTOM_DIMENSION: exist_in_ga = utils.find_by_keys(custom_dimensions, cd, 'name') exist_in_portal = portal.google_analytics_dimensions.get(cd, None) if not exist_in_ga or not exist_in_portal or \ not exist_in_ga['index'] == exist_in_portal: if not exist_in_ga and not exist_in_portal: app.log.error( 'custom dimension={} does not exist in ga nor portal={},{} creating'
from profapp.models.users import User from flask import g, url_for from sqlalchemy.sql import text, and_, or_ from profapp import create_app, prepare_connections, utils import argparse import datetime import feedparser import re from bs4 import BeautifulSoup from profapp.constants.RECORD_IDS import SYSTEM_USERS from profapp.models.translate import Phrase app = create_app(apptype='read_company_data_feeds', config='config.CommandLineConfig', debug = True) def grab_datetime_from_item(item): return PRBase.parse_timestamp(item.get('published', None)) \ or None def try_to_grab_illustration(material, *urls): for url in [u for u in urls if u]: try: material.illustration = {'selected_by_user': {'type': "url", 'url': url } } return True
from profapp.models.files import File, FileContent from flask import g from profapp import create_app, prepare_connections import argparse, os if __name__ == '__main__': parser = argparse.ArgumentParser(description='send greetings message') parser.add_argument("--file_id") parser.add_argument("--file_name") parser.add_argument("--parent_id") parser.add_argument("--mime") parser.add_argument("--file") args = parser.parse_args() app = create_app(apptype='profi', config='config.CommandLineConfig') with app.app_context(): prepare_connections(app)(echo=True) f = open(args.file, 'rb') file = File(parent_id=args.parent_id, root_folder_id=args.parent_id, name=args.file_name, company_id=None, mime=args.mime, size=os.path.getsize(args.file)).save() file_cont = FileContent(file=file, content=f.read()) file.save() file.id = args.file_id g.db.commit()
from profapp import create_app import argparse # if __name__ == '__main__': parser = argparse.ArgumentParser(description='profireader application type') parser.add_argument("apptype", default='profi') args = parser.parse_args() app = create_app(apptype=args.apptype) if __name__ == '__main__': if args.apptype == 'front': port = 8888 elif args.apptype == 'file': port = 9001 elif args.apptype == 'static': port = 9000 else: port = 8080 app.run(port=port, host='0.0.0.0', debug=True) # app.run(debug=True)
import sys sys.path.append('..') import os from profapp.models.portal import Portal from profapp.models.third.google_analytics_management import GoogleAnalyticsManagement, CUSTOM_DIMENSION, CUSTOM_METRIC from flask import g, url_for from profapp import create_app, prepare_connections, utils import argparse app = create_app(apptype='check_google_analytics', config='config.CommandLineConfig') def check_custom_dimensions(portal, portal_dict, custom_dimensions, account, wp, also_fix=False): for cd in CUSTOM_DIMENSION: exist_in_ga = utils.find_by_keys(custom_dimensions, cd, 'name') exist_in_portal = portal.google_analytics_dimensions.get(cd, None) if not exist_in_ga or not exist_in_portal or \ not exist_in_ga['index'] == exist_in_portal: if not exist_in_ga and not exist_in_portal: app.log.error( 'custom dimension={} does not exist in ga nor portal={},{} creating'. format(cd, portal.id, portal.host), **app.log.extra(portal=portal_dict, account=account, web_property=wp)) if also_fix: portal.google_analytics_dimensions[cd] = ga.create_custom_dimension( account_id=account['id'], web_property_id=wp['id'], dimension_name=cd)
from __future__ import (absolute_import, division, print_function, unicode_literals) from builtins import * from future import standard_library standard_library.install_aliases() # see also: # http://python-future.org/what_else.html#what-else from flask import url_for from flask.ext.script import Manager # for making scripts with Flask see documentation: # http://flask-script.readthedocs.org/en/latest/ from profapp import create_app app = create_app() manager = Manager(app) @manager.command def list_routes(): """ the solution was found here: http://stackoverflow.com/a/19116758/4388451 and here http://stackoverflow.com/a/22651263/4388451 Python 2.6+ / Python 3.3+ compatibility package: python-future http://python-future.org/overview.html to use it run: python manage.py list_routes""" import urllib.parse output = []
from profapp.models.users import User from flask import g, url_for from sqlalchemy.sql import text, and_, or_ from profapp import create_app, prepare_connections, utils import argparse import datetime import feedparser import re from bs4 import BeautifulSoup from profapp.constants.RECORD_IDS import SYSTEM_USERS from profapp.models.translate import Phrase app = create_app(apptype='read_company_data_feeds', config='config.CommandLineConfig', debug=True) def grab_datetime_from_item(item): return PRBase.parse_timestamp(item.get('published', None)) \ or None def try_to_grab_illustration(material, *urls): for url in [u for u in urls if u]: try: material.illustration = { 'selected_by_user': { 'type': "url", 'url': url