Exemple #1
0
    def database_remove_callback(self, update: Update,
                                 context: CallbackContext):
        query = update.callback_query
        chat_id = query.message.chat_id
        callback = json.loads(query.data)

        if callback['answer'] == "database:yes":
            results = self.get_data(chat_id=chat_id,
                                    searchtext=callback['data'])
            for image in results:
                try:
                    query.bot.delete_message(chat_id=chat_id,
                                             message_id=image['message_id'])
                except Exception as err:
                    self.log(
                        text="No danger! Image just not found for deletion",
                        logging_type=logging.INFO)

            Database.instance().delete_from_media_by_command(
                chat_id=chat_id, searchtext=callback['data'])
            query.edit_message_text(
                text="Ois glöscht Kollege wir san wieder sauber!")

        else:
            query.edit_message_text(text="Guad daun los mas!")
Exemple #2
0
class MainApplication:
    """Class which builds and manages UI."""
    def __init__(self, root) -> None:
        self.db = Database()
        self.frames = self.create_frames(root)
        AppButton(root, self.create_expense)

    def create_frames(self, root) -> dict[FieldNames, Component]:
        frames: Dict[FieldNames, Component] = {}
        input_fields: List[FieldInfo] = [
            {
                "name": FieldNames.NAME,
                "label": "Expense Name: "
            },
            {
                "name": FieldNames.COST,
                "label": "Expense Cost: "
            },
            {
                "name": FieldNames.DATE,
                "label": "Expense Date: "
            },
        ]
        for field in input_fields:
            frame = InputField(root, field["label"])
            frames[field["name"]] = frame

        frames[FieldNames.TAGS] = Checkboxes(root, )
        return frames

    def create_expense(self):
        name = self.frames[FieldNames.NAME].get()
        cost = self.frames[FieldNames.COST].get()
        date = self.frames[FieldNames.DATE].get()
        tags = self.frames[FieldNames.TAGS].get()

        if not date:
            date = datetime.date.today()

        expense = Expense(0, date=date, name=name, cost=cost, tags=tags)

        try:
            self.db.add_expense(expense)
            self.clear_fields()
            self.refocus_cursor()

        except:
            print("error")

    def clear_fields(self):
        self.frames[FieldNames.NAME].reset()
        self.frames[FieldNames.COST].reset()
        self.frames[FieldNames.DATE].reset()
        self.frames[FieldNames.TAGS].reset()

    def refocus_cursor(self):
        self.frames[FieldNames.NAME].field.focus_set()
Exemple #3
0
    def save_media(self, update: Update, message, command: str, query: str,
                   type: str):

        Database.instance().insert_into_media(
            chat_id=message.chat_id,
            message_id=message.message_id,
            command=command,
            username=update.message.chat.username,
            user_id=update.message.from_user.id,
            type=type,
            searchtext=query)
Exemple #4
0
def main() -> None:
    def cmd_line_arg_handler() -> dict:

        PYTHON_VERSION = "Python version: 3.10"
        opts = [opt for opt in sys.argv[1:] if opt.startswith("-")]
        cmd_line_args = {"debug": False}

        for opt in opts:
            if opt == "-h" or opt == "--help":
                print(
                "Expenses Tracker by Jason Tarka\n"
                "Accepted command line arguments:\n"
                '"-v" or "--version": Display version information\n'
                '"-d" or "--debug": Enter debugging mode'
                )
                sys.exit()
            if opt == "-v" or opt == "--version":
                print(
                "Application version: 1.1.0\n" f"Python version: {PYTHON_VERSION}"
                )
                sys.exit()

            if opt == "-d" or opt == "--debug":
                cmd_line_args["debug"] = True

        return cmd_line_args

    debug = cmd_line_arg_handler().get("debug", False)

    db = Database(debug=debug)
    app = Application(db)
    app.start()
Exemple #5
0
 def get_data(self, chat_id, searchtext: str):
     return Database.instance().get_from_media_by_command(
         chat_id=chat_id, searchtext=searchtext)
Exemple #6
0
from flask import Blueprint, render_template, request, redirect, url_for
from flask import session, flash
from repository.sqlite import db_session
from repository.database import Database
from model.category import Category
from model.item import Item
from views.utils import login_required, ownership_required
import random
import string
import json


web = Blueprint('web', __name__)
db = Database(db_session)


@web.route('/')
@web.route('/categories/')
def show_catalog_latest_items():
    """Display a list with the most recent items"""
    categories = db.get_all_categories()
    items = db.get_latest_items()

    return render_template(
        'catalog.html',
        title='Latest Items',
        categories=categories,
        items=items)


@web.route('/categories/<int:category_id>/items/')
Exemple #7
0
    # formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    # handler.setFormatter(formatter)
    # root.addHandler(handler)


# Runs schedules besides from the telegram bot
def run_schedules():
    while True:
        schedule.run_pending()
        time.sleep(3)


def main():
    enable_logging()
    start_new_thread(run_schedules, ())

    updater = Updater(read_key("telegram"), use_context=True)
    dp = updater.dispatcher
    load_modules(dp)
    send_awake_to_subscriber(dp)

    logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                        level=logging.INFO)

    updater.start_polling()


if __name__ == '__main__':
    Database.instance()
    main()
Exemple #8
0
 def __init__(self, root) -> None:
     self.db = Database()
     self.frames = self.create_frames(root)
     AppButton(root, self.create_expense)
Exemple #9
0
from fastapi import FastAPI

from configuration.exceptions import ApiBaseException, generic_handler
from controller.conta_controller import conta_router
from controller.correntista_controller import correntista_router
from controller.lancamento_controller import lancamento_router
from repository.database import Database


def _init_app():
    app = FastAPI()
    configura_exception_handler(app)
    configura_routers(app)
    return app


def configura_exception_handler(app):
    app.add_exception_handler(ApiBaseException, generic_handler)


def configura_routers(app):
    app.include_router(**conta_router)
    app.include_router(**correntista_router)
    app.include_router(**lancamento_router)


if __name__ == '__main__':
    app = _init_app()
    Database.criar_db()
    uvicorn.run(app, host='127.0.0.1', port=8000)