Exemple #1
0
def osmcprefs(whodat, key=None, value=None, *args):

    db = DBInterface()
    whodat = whodat.lower()

    if whodat.endswith('osmc_getprefs'):

        if key is None:
            return '\n'.join(_get_all_settings(db=db))

        else:
            return str(_get_setting(key, db=db))

    elif whodat.endswith('osmc_setprefs'):

        if key is None or value is None:
            return 'Error, no params provided\Example: osmc_setprefs key value'

        else:
            if value.lower() in ['true', 'false']:
                db.setsetting(key, bool(value), bool)
            else:
                try:
                    db.setsetting(key, int(value), int)
                except ValueError:
                    try:
                        db.setsetting(key, float(value), float)
                    except ValueError:
                        try:
                            db.setsetting(key, value)
                        except:  # pragma: no cover
                            return 'Failed to set value'

            return 'Set "%s" to "%s"' % (key, value)
Exemple #2
0
 def __init__(self, log_path, **kwargs):
     super(LogManager, self).__init__(**kwargs)
     self.log_path = log_path
     self.log_interface = log_interface = DBInterface(log_path,
                                                      'log',
                                                      do_date=True,
                                                      do_hour=True)
     touch_id = log_interface.get_entry('touches', 'last_touch_id', 'value')
     if touch_id is None:
         touch_id = 0
     self.touch_id = touch_id
Exemple #3
0
 def __init__(self, **kwargs):
     global_idmap.update({'kivysurvey': self})
     self.db_interface = DBInterface(self)
     super(KivySurvey, self).__init__(**kwargs)
     self.transition = SlideTransition()
     json = JsonStore(construct_target_file_name('survey.json', __file__))
     for each in json:
         print(each)
     self.survey = Survey(json)
     try:
         gps.configure(on_location=self.receive_gps)
     except:
         pass
     Clock.schedule_once(self.start_gps)
Exemple #4
0
 def __init__(self, folders_to_track, start_sync_at, pyfile, **kwargs):
     super(DriveMainThread, self).__init__(**kwargs)
     self.drive_data = DBInterface(
         os.path.dirname(os.path.abspath(pyfile)) + '/drive_data/',
         'drive_files')
     base_path = os.path.dirname(os.path.abspath(pyfile)) + '/'
     self.updated_folders = set()
     self.start_sync_at = start_sync_at
     self.folders_to_track = folders_to_track
     self.setup_drive()
     self.update_queue = Queue.Queue()
     self.get_tracked_folder_ids(
         folders_to_track,
         os.path.dirname(os.path.abspath(pyfile)) + '/')
     self.tracked_widgets = {}
     self.folders_to_track = [
         base_path + path + '/' for path in folders_to_track
     ]
Exemple #5
0
    def __init__(self, **kwargs):
        self.files_being_tracked = {}
        self.pyfile = pyfile = kwargs.get('pyfile', __file__)
        self.drive_data = DBInterface(
            os.path.dirname(os.path.abspath(pyfile)) + '/drive_data/',
            'drive_files')
        super(DriveCarousel, self).__init__(**kwargs)
        folders_to_track = kwargs.get('folders_to_track',
                                      self.folders_to_track)
        self.set_folders_to_track(folders_to_track)

        self.folder_observers = {}
        self.popup = popup = Popup()
        self.progress_tracker = progress_tracker = DriveProgressTracker()

        #Clock.schedule_interval(self.retrieve_all_changes, 30.)
        #Clock.schedule_interval(self.notify_folder_observers, 15.)
        self.schedule_change(0.)
        Clock.schedule_interval(self.update_carousel, 5.)
        Clock.schedule_interval(self.schedule_change, 30.)
    def __init__(self, **kwargs):
        self.theme_manager = ThemeManager()
        self.setup_font_ramps()
        self.get_color = get_rgba_color
        self.get_icon = get_icon_char
        self.get_style = get_style
        self.get_ramp_group = get_font_ramp_group
        super(FlatApp, self).__init__(**kwargs)
        self.setup_themes()
        self.numpads = numpads = {}
        numpads['decimal'] = DecimalNumPad()
        numpads['regular'] = NumPad()
        if self.do_device_id:
            log_behavior = LogBehavior()
            self.log_manager = log_manager = log_behavior.log_manager
            self.settings_interface = settings_interface = DBInterface(
                construct_target_file_name('', __file__), 'settings')
            self.device_id = device_id = settings_interface.get_entry(
                'settings', 'device_id', 'value')

            self.bind(device_id=log_manager.setter('device_id'))
            if device_id is None:
                Clock.schedule_once(self.register_device_id)
Exemple #7
0
 def __init__(self, server_address, logger=None):
   # Member variables
   self.running = True
   self.server_address = server_address
   self.db = DBInterface()
   self.logger = logger or logging.getLogger(__name__)
Exemple #8
0
# -*- coding:utf-8 -*-

import re
import csv
import datetime
import jwt
from io import StringIO
from flask import Flask, jsonify, url_for, make_response, abort, request
from werkzeug.security import generate_password_hash, check_password_hash
from dbinterface import DBInterface
from utils import API_ROUTE, API_USERS_ROUTE, API_USERS_PORT, SECRET_KEY, token_required

api = Flask(__name__)
api.config['SECRET_KEY'] = SECRET_KEY

users = DBInterface('users', ['username', 'password', 'status', 'admin'])

# Funções auxiliares


def make_public_user(user):
    '''
	Altera a forma de exibição de um elemento do cadastro.
	Ao invés de mostrar o ID do elemento, mostra a URI do mesmo,
	  tornando assim mais fácil a requisição do mesmo via API.
	'''
    new_user = {}
    for field in user:
        if field == 'id':
            new_user['uri'] = url_for('get_user',
                                      user_id=user['id'],
# -*- coding:utf-8 -*-

import re
import csv
from io import StringIO
from flask import Flask, jsonify, url_for, make_response, abort, request
from werkzeug.utils import secure_filename
from dbinterface import DBInterface
from utils import API_MEDICINES_ROUTE, API_MEDICINES_PORT, token_required

api = Flask(__name__)

medicines = DBInterface(
    'medicines', ['name', 'type', 'dosage', 'price', 'manufacturer', 'sales'])

# Funções auxiliares


def make_public_medicine(medicine):
    '''
	Altera a forma de exibição de um elemento do cadastro.
	Ao invés de mostrar o ID do elemento, mostra a URI do mesmo,
	  tornando assim mais fácil a requisição do mesmo via API.
	'''
    new_medicine = {}
    for field in medicine:
        if field == 'id':
            new_medicine['uri'] = url_for('get_medicine',
                                          medicine_id=medicine['id'],
                                          _external=True)
# -*- coding:utf-8 -*-

from flask import Flask, jsonify, url_for, make_response, abort, request
from dbinterface import DBInterface
from utils import API_CLIENTS_ROUTE, API_CLIENTS_PORT, token_required

api = Flask(__name__)

clients = DBInterface('clients', ['name', 'phonenumber', 'medicines'])

# Funções auxiliares


def make_public_client(client):
    '''
	Altera a forma de exibição de um elemento do cadastro.
	Ao invés de mostrar o ID do elemento, mostra a URI do mesmo,
	  tornando assim mais fácil a requisição do mesmo via API.
	'''
    new_client = {}
    for field in client:
        if field == 'id':
            new_client['uri'] = url_for('get_client',
                                        client_id=client['id'],
                                        _external=True)

        else:
            new_client[field] = client[field]

    return new_client
Exemple #11
0
    def start(self):
        self.logger.info('Starting NFCInterface ...')
        self.db = DBInterface(self.logger)
        self.running = True
        while (self.running):
            # Block waiting for a swipe
            uuid = self.get_uuid()

            # What we really want here is a callback interface, to abstract away the
            # specifics of this particular project. For now, we make it work.

            if (self.writing):
                # If we're in writing mode
                self.logger.info('In writing mode')
                success = 1

                # Populate the database with the UUID, if it's not already available,
                #  so at least this card is registered.
                card_id = self.db.register_card(uuid)
                if card_id is None:
                    success = 0

                # Authenticate for reading/writing
                self.mifare_auth(uuid, 0x04)
                ids = [
                    self.write_data[0], card_id, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                    0, 0, 0, 0
                ]
                self.mifare_write(0x04, ids)

                self.mifare_auth(uuid, 0x05)
                md5hash = self.write_data[2:]
                self.mifare_write(0x05, md5hash)

                #binprint.print_r_t(self.write_data, "Data to be written")

                # Need a check here to determine if the card has written correctly,
                # then we can trust the success check below.

                if (success):
                    self.db.update_card(card_id, self.write_data[0])
                    self.writing = False
                    self.logger.info('Success beep.')
                    self.red(0)
                    self.blink(15, 3, 0)

                else:
                    self.logger.info("Failure beep.")
                    self.green(0)
                    self.blink(12, 3, 0)

            else:
                # If we're not in writing mode, we're in default reading mode
                self.mifare_auth(uuid, 0x04)
                response_A = self.mifare_read(0x04)

                self.mifare_auth(uuid, 0x04)
                response_B = self.mifare_read(0x05)

                user_id = self.db.check_hash(uuid, response_A, response_B)
                if (user_id):
                    logged_in = self.db.toggle_status(user_id)  # 1 in, 0 out
                    if (logged_in):
                        self.logger.info("Success in beep.")
                        self.green(1)
                    else:
                        self.logger.info("Success out beep.")
                        self.blink(15, 2, 1)
                else:
                    self.logger.info("Failure beep.")
                    self.red(1)

            sleep(0.5)
            self.logger.info("LED reset")
            self.green(0)
            self.red(0)

            # Delay the loop reset for a bit of time
            # to prevent someone from leaning on the
            # login/logout button.
            sleep(3)