コード例 #1
0
ファイル: unittests.py プロジェクト: Ivasyuk/profireader
 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)()
コード例 #2
0
ファイル: unittests.py プロジェクト: alinelle/profireader
 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)()
コード例 #3
0
ファイル: unittests.py プロジェクト: matushevskyi/profireader
 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)()
コード例 #4
0
ファイル: unittests.py プロジェクト: spaun299/profireader
 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)()
コード例 #5
0
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}))
コード例 #6
0
ファイル: run.py プロジェクト: thewebarea/profireader
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()
コード例 #7
0
            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()
コード例 #8
0
ファイル: run.py プロジェクト: Greckas/profireader
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()


コード例 #9
0
ファイル: manage.py プロジェクト: spaun299/profireader
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
コード例 #10
0
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])
コード例 #11
0
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()
コード例 #12
0
ファイル: wsgi.py プロジェクト: thewebarea/profireader
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()

コード例 #13
0
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'
コード例 #14
0
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
コード例 #15
0
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()
コード例 #16
0
ファイル: run.py プロジェクト: maryna-yanul/profireader
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)







コード例 #17
0
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)
コード例 #18
0
ファイル: manage.py プロジェクト: promko/profireader
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 = []
コード例 #19
0
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