Ejemplo n.º 1
0
def start(update, context):
    "/start command"
    context.user_data["database"] = DBController(config["database"]["path"])
    bot_info = str(context.bot.get_me())
    message = f"Select an action"
    update.message.reply_text(message, reply_markup=reply_markup)
    return SELECTING_ACTION
Ejemplo n.º 2
0
def main():
    parser = OptionParser()
    logger_options(parser)
    parser.add_option("--skip-connection-check",
                      dest='skip_connection_check',
                      default=False,
                      action="store_true",
                      help="Don't check open connections.")
    parser.add_option(
        "--kill-connections",
        dest='kill_connections',
        default=False,
        action="store_true",
        help="Kill non-system connections instead of reporting an error.")
    parser.add_option('--pgbouncer',
                      dest='pgbouncer',
                      default='host=localhost port=6432 user=pgbouncer',
                      metavar='CONN_STR',
                      help="libpq connection string to administer pgbouncer")
    parser.add_option('--dbname',
                      dest='dbname',
                      default='launchpad_prod',
                      metavar='DBNAME',
                      help='Database name we are updating.')
    parser.add_option('--dbuser',
                      dest='dbuser',
                      default='postgres',
                      metavar='USERNAME',
                      help='Connect as USERNAME to databases')

    (options, args) = parser.parse_args()
    if args:
        parser.error("Too many arguments")

    if options.kill_connections and options.skip_connection_check:
        parser.error(
            "--skip-connection-check conflicts with --kill-connections")

    log = logger(options)

    controller = DBController(log, options.pgbouncer, options.dbname,
                              options.dbuser)

    if options.kill_connections:
        preflight_check = KillConnectionsPreflight(log, controller)
    elif options.skip_connection_check:
        preflight_check = NoConnectionCheckPreflight(log, controller)
    else:
        preflight_check = DatabasePreflight(log, controller)

    if preflight_check.check_all():
        log.info('Preflight check succeeded. Good to go.')
        return 0
    else:
        log.error('Preflight check failed.')
        return 1
Ejemplo n.º 3
0
def main():
    parser = OptionParser()
    parser.add_option('--pgbouncer',
                      dest='pgbouncer',
                      default='host=localhost port=6432 user=pgbouncer',
                      metavar='CONN_STR',
                      help="libpq connection string to administer pgbouncer")
    parser.add_option('--dbname',
                      dest='dbname',
                      default='launchpad_prod',
                      metavar='DBNAME',
                      help='Database name we are updating.')
    parser.add_option('--dbuser',
                      dest='dbuser',
                      default='postgres',
                      metavar='USERNAME',
                      help='Connect as USERNAME to databases')

    logger_options(parser, milliseconds=True)
    (options, args) = parser.parse_args()
    if args:
        parser.error("Too many arguments")

    # In case we are connected as a non-standard superuser, ensure we
    # don't kill our own connections.
    SYSTEM_USERS.add(options.dbuser)

    log = logger(options)

    controller = DBController(log, options.pgbouncer, options.dbname,
                              options.dbuser)

    try:
        # Master connection, not running in autocommit to allow us to
        # rollback changes on failure.
        master_con = psycopg2.connect(str(controller.master))
    except Exception, x:
        log.fatal("Unable to open connection to master db (%s)", str(x))
        return 94
Ejemplo n.º 4
0
 def setUp(self):
     self.dbController = DBController("db_name", "db_user", "db_pass",
                                      "db_host", 5432)
     self.mock_conn = MockConnection()
     self.dbController.conn = self.mock_conn
     self.mock_cursor = self.dbController.conn.cursor()
Ejemplo n.º 5
0
import pickle
import redis

CACHE_TTL_SECONDS = 60

app = Flask(__name__)
api = Api(app)

# Get DB configurations.
DB_HOST = 'db'
DB_USER = os.environ['POSTGRES_USER']
DB_PASS = os.environ['POSTGRES_PASSWORD']
DB_NAME = os.environ['POSTGRES_DB']
DB_PORT = '5432'

dbController = DBController(DB_NAME, DB_USER, DB_PASS, DB_HOST, DB_PORT)
cache = redis.Redis(host='paper_cache', port=6379)
"""
Define how to render Author instance.
"""
author_list_fields = {
    'id': fields.Integer(attribute='author_id'),
    'name': fields.String(attribute='author_name'),
    'aliases': fields.List(fields.String)
}
"""
Define how to render Paper instance.
"""
paper_list_fields = {
    'paper_id': fields.Integer,
    'title': fields.String,
Ejemplo n.º 6
0
    today = datetime.date.today().strftime('%Y-%m-%d')
    current_year = today.split('-')[0]

    parser = argparse.ArgumentParser()
    parser.add_argument('-t', '--team', default='NYY')
    parser.add_argument('-d', '--date', default=today)
    args = parser.parse_args()

    year = args.date.split('-')[0]

    # print("Gathering game previews...")
    # scrape.game_previews()
    # scrape.espn_preview_text(args.date, args.team)

    # Create database controller object
    dbc = DBController()

    # print("Gathering game previews...")
    # scrape.game_previews()

    # Query upcomming game and populate data
    game = dbc.get_team_game_preview(team=args.team, date=args.date)

    game_data = extract_game_data(game)
    if game_data:
        home = game_data['home']
        away = game_data['away']
        state = game_data['preview'][0]['gameData']['status']['detailedState']
    else:
        raise ValueError("NO GAME FOUND")
Ejemplo n.º 7
0
import sqlite3
import argparse

from dbcontroller import DBController
from settings import DB_FILENAME
from models import Admin

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument("id")
    args = parser.parse_args()
    
    new_id = args.id
    db = DBController(DB_FILENAME)
    
    db.add_admin(Admin(new_id))
    
    print("OK! New admin succefully added.")
    
    
    
    
Ejemplo n.º 8
0
from aiogram.utils import executor
from dbcontroller import DBController
from updater import update
from custom_filters import HasArg, IsAdmin
from statistics import Statistics
from models import User, Admin
from cfparser import parse_problems_count, check
from aiogram.dispatcher.filters import IsReplyFilter

import asyncio
import settings
import logging

bot = Bot(settings.API_TOKEN)
dp = Dispatcher(bot)
db = DBController(settings.DB_FILENAME)

logging.basicConfig(level=logging.INFO)


@dp.message_handler(commands=['start', 'help'])
async def hello(message):
    msg_text = "Hello, I am challnge statistics bot!\n \
    Which commands I know ?\n\n \
    /start or /help -> use this commands to get this help\n \
    /list -> use this command to get Participants list\n \
    /stat -> to get statistics\n\n \
    Bot created by @WinDuz\n \
    You can contribute to project\
    <a href='https://github.com/ilyas-kalandar/challengestatistics'> \
    here</a>"
Ejemplo n.º 9
0
 def boot_database(self,myid=""):
     if DB.dbcontroller is None:
       DB.dbcontroller = DBController(myid)