examples qpython

Example DBRobot.py gestione data base tramite comandi vocali in fase di test...

#!/usr/bin/python

# -*- coding: utf-8 -*-

# DBVoice by skole www.pi-ppo.org

'''


DBVoice... semplice programmino in qpython per gestire risposte vocali che potrai

memorizzare su tuo smartphone e/o tablet con qpython e db sqlite per modificare

i messaggi vocali, puoi recuperare altre funzioni dall'esempio dbmemory.py

e integrarle nel corpo della classe pyLeggiMessaggi.


SiOK... DB Voice.Interactive.Centre divertiti a leggere records, eseguire

tramite la voce funzioni e/o link...

Sostituisci l'input della tastiera con la tua voce e l'output con la voce

del tuo smartphone-pc ciao Fiorenzo

'''


import androidhelper

droid = androidhelper.Android()


import sqlite3 as sqlite

import sys

con = None


VarTableName = 'Voce'

TableField1 = 'MSGLink'

TableField2 = 'MSGTesto'


try:

    NameDB = 'dbVoce.db'

    db = sqlite.connect(NameDB)

    cursor = db.cursor()   

    cursor.execute('SELECT SQLITE_VERSION()')

    data = cursor.fetchone()

    print ("SQLite version: %s" % data) 

    cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")

    print(cursor.fetchall())

    CreateTablefields = 'TableID INTEGER PRIMARY KEY AUTOINCREMENT,  %s text, %s text' %(TableField1, TableField2)

    VarSQLScript = '''CREATE TABLE IF NOT EXISTS %s (%s)''' %(VarTableName, CreateTablefields)

    db.execute(VarSQLScript)

   

except e:   

    print ("Error %s:" % e.args[0])

    sys.exit(1)

finally:   

    if con:

        con.close()


class pyLeggiMessaggi:

    def __init__(self):

        self.LeggiMessaggi()


    def Commit(self):

        db.commit()

        print ('commit... ')

   

    def Close(self):   

        db.close()

        print ('close db... ')


    def Insert(self):

        FieldV1 = "i"

        while FieldV1 != "q":

            FieldV1 = input('Inserisci MSGLink  : ')

            if FieldV1 == "q":

                break

            FieldV2 = input('Inserisci MSGtesto  : ')

            VarSQLScript = "INSERT INTO %s VALUES (null,'%s','%s')" %(VarTableName, FieldV1, FieldV2)

            db.execute(VarSQLScript)

            print ('Insert new record table %s: ' % VarTableName)

        self.Commit()

       

    def Update(self):

        VarTableID = input('Table ID: ')

        VarSQLScript = ("SELECT * FROM %s WHERE TableID = %d" %(VarTableName, int(VarTableID)))

        cursor.execute(VarSQLScript)

        names = list(map(lambda x: x[0], cursor.description))

        for row in cursor.fetchall():

            for i,fieldname in enumerate(names):

                print ('%s %s' % (fieldname, row[i]))

                if i == 1:

                    droid.ttsSpeak(row[i])

                    FieldV1 = row[i]

                    FieldV1 = input('MSGLink')

                if i == 2:

                    droid.ttsSpeak(row[i])

                    FieldV2 = row[i]

                    FieldV2 = input('MSGTesto')

        VarSQLScript = "UPDATE %s SET '%s' = '%s', '%s' = '%s'WHERE TableID = %d" %(VarTableName,

        TableField1, FieldV1, TableField2, FieldV2, int(VarTableID))

        print ('Update record %s %s ID: %d' % (VarTableName, FieldV1, int(VarTableID)))

        db.execute(VarSQLScript)

        self.Commit()


    def EseguiLink(self):

        cursor = db.cursor()

        #Link = droid.dialogGetPassword('Link..#').result

        Link = droid.recognizeSpeech()[1]

        droid.ttsSpeak('Esegui Link online')

        VarSQLScript = ("SELECT * FROM %s WHERE %s = '%s'" %(VarTableName, TableField1, Link))

        #print(VarSQLScript)

        cursor.execute(VarSQLScript)

        print ('Esegui %s table %s' % (Link, VarTableName))

        names = list(map(lambda x: x[0], cursor.description))

        for row in cursor.fetchall():

            for i,fieldname in enumerate(names):

                print ('%s %s' % (fieldname, row[i]))

                if i == 1:

                    droid.ttsSpeak(row[i])

                if i == 2:

                    droid.ttsSpeak(row[i])

                    droid.startActivity('android.intent.action.VIEW', row[i])

                    droid.ttsSpeak('Link...')

   

    def LeggiMessaggi(self):

        opz = "l"

        while opz != "q":

            opz = input('Opzioni disponibili: e=esegui link i=inserisci, u=modifica, l=leggi dbtesto $')

            if opz == 'i':

                self.Insert()

            if opz == 'u':

                self.Update()

            if opz == 'e':

                self.EseguiLink()

            if opz == 'l':

                cursor = db.cursor()

                VarSQLScript = ("SELECT * FROM %s" %VarTableName)

                cursor.execute(VarSQLScript)

                print ('SQL script... Select Row table %s' % VarTableName)

                names = list(map(lambda x: x[0], cursor.description))

                for row in cursor.fetchall():

                    for i,fieldname in enumerate(names):

                        print ('%s %s' % (fieldname, row[i]))

                        if i == 1:

                            droid.ttsSpeak(row[i])

                            #droid.recognizeSpeech()

                        if i == 2:

                            droid.ttsSpeak(row[i])

                            #droid.recognizeSpeech()

                droid.ttsSpeak('Fine Messaggi...')

                print("End MSG...")

        self.Close()

        #end.MSG


def main():

    app=pyLeggiMessaggi()


main()

#!/usr/bin/python

# -*- coding: utf-8 -*-

# Speaklogin.py by skole www.pi-ppo.org


'''

Speaklogin.py: Come richiesto hò scritto questa piccola classe per utilizzare il servizio offerto

on line di riconoscimento vocale che restituisce l'arry da confrontare con la Pasword per poter

accedere a altre nuove... funzioni del programma.

Se questo esempio funziona sul tuo cellulare... potrai inserire nel programma InfoMagZ.py l'acquisizione

vocale della giacenza e scadenza senza usare la tastiera virtuale come volevi tu.

SiOK... penso che poter proporre d'utilizzare tastiere da te personalizzate nei programmi python, i quali

richiedono l'inserimento di simboli si un'ottima soluzione molti produttori di smartphone lo fanno. 

'''

import time

import androidhelper

droid = androidhelper.Android()


class pySpeaklogin:

    def __init__(self):

        self.login()

       

    def login(self):

        droid.ttsSpeak('Password parla adesso...')

        time.sleep(3)

        # on line to work...

        Password = droid.recognizeSpeech('parla', None, None)[1]

           

        print(Password)

        #Password = droid.dialogGetPassword('Password').result   

       

        if Password == 'ciao':

            droid.ttsSpeak('Benvenuto'), droid.ttsSpeak(Password)

            print('Benvenuto#')

        else:

            droid.ttsSpeak('Accesso negato'), droid.ttsSpeak(Password)

            print('Accesso negato!!!')


def main():

    app=pySpeaklogin()


main()

#!/usr/bin/python

# -*- coding: utf-8 -*-

# InfoMagZ by skole www.pi-ppo.org

'''

Le funzioni sono state recuperate da dbmemory.py

hò cercato di rendere il codice più semplice dato che

per inventari e/o controlli su documentazione relativa

i prodotti le informazioni saranno

rielaborate per essere inserite nelle tabelle

delle applicazioni aziendali ecc...


InfoMagZ... questo semplice programmino in python

permette di creare un lista degli articoli di magazzino

con le giacenze per singole scadenze.

In caso d'inserimento errato della giacenza e/o della scadenza

segnalare l'errore inserendo lo stesso codice a barre e nel

campo giacenza inserire ER.

Ripetere l'inserimento del medesimo codice a barre con i

valori giacenza e scadenza corretti.

In fase di elaborazione della tabella InfoMagZ ordinata per ID

il test del valore 'er' nel campo giacenza permette di eseguire

la funzione che determina se il codice a barre è il medesimo

l'aggiornamento dei valori giacenza e scadenza dell'ultimo

record inserito con il record successivo della tabella InfoMagZ.

Per eseguire un nuovo inventario rinominare il file Magzino.db

con la data dell'inventario esempio: 20170828_Magzino.db   

Il programma può essere usato su tablet e/o smartphone e

personalizzato per usare i comandi vocali per inserire

più velocemente i valori giacenze e relative scadenze.

'''


import androidhelper

import sqlite3 as sqlite

import sys

con = None


VarTableName = 'InfoMagZ'

TableField1 = 'Barcode'

TableField2 = 'Giacenza'

TableField3 = 'Scadenza'


try:

    NameDB = 'Magzino.db'

    db = sqlite.connect(NameDB)

    cursor = db.cursor()   

    cursor.execute('SELECT SQLITE_VERSION()')

    data = cursor.fetchone()

    print ("SQLite version: %s" % data) 

    cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")

    print(cursor.fetchall())

    CreateTablefields = 'TableID INTEGER PRIMARY KEY AUTOINCREMENT, Barcode text, Giacenza text, Scadenza text'

    VarSQLScript = '''CREATE TABLE IF NOT EXISTS %s (%s)''' %(VarTableName, CreateTablefields)

    db.execute(VarSQLScript)

   

except e:   

    print ("Error %s:" % e.args[0])

    sys.exit(1)

finally:   

    if con:

        con.close()


def Insert():

    FieldV1 = "i"

    while FieldV1 != "q":

        FieldV1 = input('Inserisci il Barcode : ')

        if FieldV1 == "q":

            break

        FieldV2 = input('Inserisci la Giacenza : ')

        FieldV3 = input('Inserisci la Scadenza : ')

        VarSQLScript = "INSERT INTO %s VALUES (null,'%s','%s','%s')" %(VarTableName, FieldV1, FieldV2, FieldV3)

        db.execute(VarSQLScript)

        print ('Insert new record table %s: ' % VarTableName)

    Commit()

    Select()


def Select():

    cursor = db.cursor()

    VarSQLScript = ("SELECT * FROM %s" %VarTableName)

    cursor.execute(VarSQLScript)

    print ('SQL script... Select Row table %s' % VarTableName)

    names = list(map(lambda x: x[0], cursor.description))

    for row in cursor.fetchall():

        #fw = open('SQLName.log', 'a')

        for i,fieldname in enumerate(names):

            print ('%s %s' % (fieldname, row[i]))


def Commit():

    db.commit()

    print ('commit... ')

   

def Close():   

    db.close()

    print ('close db... ')


droid = androidhelper.Android()

opz = 'i'

while opz != "q":

    opz = input('Inserisci opz: i=barcode s=list :')

    print ("opz %s" % opz)

    if opz == 'i':

        Insert()

    if opz == 's':

        Select()


Close()


print ("This is a simple example of SQLite3 to ANDROID by skole www.pi-ppo.org")

CONTACT US

 

  Tel: .....

FOLLOW US

PROFILE

Profile ...

© Copyright 2016-2019 All Rights Reserved.