Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /proc/thread-self/root/usr/local/lib/python2.7/site-packages/iftlib/score/

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 : //proc/thread-self/root/usr/local/lib/python2.7/site-packages/iftlib/score/abcutil.py

#  coding: utf8

import os
import re
import sys
import codecs
import time

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

class Part (object):

    def __init__ (self):
    
        self.text = ""
                
#********************************************************************

    def make_parts (self,pars):  #  Creating all possible parts of the score
    

        '''
        erster Parameter: abc-File
        zweiter Parameter: Kommaseparierte Liste von Stimmauszuegen: Wenn leer, werden alle gefundenen Stimmen gewaehlt
        '''

        m = re.search(r"^(.*)\.abc",pars[0])
        if not m:
            return()
        
        try:
            filter = pars[1];
            filter = re.sub(r",","|",filter,9999)
        except:
            filter = ""

        fileroot  = m.group(1)
        print fileroot, filter
        text      = codecs.open(pars[0],"r","utf-8").read()
        all_parts = {}

        while 0 == 0:   
            m = re.search(r"\s([a-z][a-z0-9]+)\:\:\s",text,re.DOTALL)
            if not m:
                break
            if filter == "" or re.search("("+filter+")",m.group(1)):
                all_parts[m.group(1)] = 1
            text = re.sub(m.group(1),"",text,99999999)
            
        for part in all_parts:

            print part
            text = self.read_in([pars[0],part])
#            continue
            fileroot1 = fileroot+"___"+part
            open(fileroot1+".abc","w").write(text)
            os.system("abcm2ps " + fileroot1 + ".abc -N 2 -j 0 -O " + fileroot1 + ".ps")
#            os.system("ps2pdf "  + fileroot1 + ".ps")
                        

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

    def read_in (self,pars):
    
        part = pars[1]
        if self.text == "":
            self.text  = codecs.open(pars[0],"r","utf-8").read()
            self.parts = []

        macros   = {}
        proceed_all_parts = True
        if re.search(r"\n\%proceed",self.text):
            proceed_all_parts = False

#  1.  Evaluation of macros

        text1 = self.text

        while 0 == 0: 
            m = re.search(r"( MACRO +)(.*?)( +)(.*?)\n",text1,flags=re.DOTALL)
            if not m:
                break
            macros[m.group(1)] = m.group(2)
            o     = m.group(1) + m.group(2) + m.group(3) + m.group(4)
            text1 = re.sub(o,"",text1,99999999)
                   
#  2.  Evalutation of Includes

        while 0 == 0: 
            m = re.search(r"( INCLUDE +)(.*?)\n",self.text,flags=re.DOTALL)
            if not m:
                break
            o    = m.group(1) + m.group(2)
            o1   = "INXXCLUDE  " + m.group(2) + "\n" + codecs.open(m.group(2),"r","utf-8").read()
            self.text = re.sub(o,o1,self.text,99999999)
        
#  3.  Evaluation of parts, the parts are cached in self.parts   --- speed it up!

        while 0 == 0:
        
            m = re.search(r"^(.*?)([a-z0-9\-]+)\:\:(.*?[^a-z0-9\-])\:\:\n?(.*)$",self.text,re.DOTALL)
            if not m:
                break
            self.text = m.group(1) + " PART---" + str(len(self.parts)) + "--- " + m.group(4)
            
            partitem  = m.group(2) + "::" + m.group(3) +"::"
            partitems = {}
#            print partitem
#            time.sleep(1)
            
            while 0 == 0:
            
                m1       = re.search("^([a-z0-9\-]+)\:\: *(.*?) *([a-z0-9\-]*)\:\:(.*)$",partitem,re.DOTALL)
                if not m1:
                    break
                partitem = m1.group(3) + "::" + m1.group(4)
                partitems[m1.group(1)] = m1.group(2)
            
            self.parts.append(partitems)

#        print self.text
#        return()


        text = self.text
        while 0 == 0:
            m  = re.search(" PART---(\d+)--- ",text)
            if not m:
                break
            o  = " PART---" + m.group(1) + "--- "
            o1 = self.parts[int(m.group(1))]
            if part in o1:
                o1 = o1[part]
            elif "-" in o1:
                o1 = o1["-"]
            else:
                o1 = ""
            text = re.sub(o,o1,text)
        
#        print text
#        exit()

#   2.  ----- split off in  staves-Parts


        textparts = []
        while 0 == 0:
            m = re.search(r"^(.*?)\n *\n(.*)$",text,re.DOTALL)
            if not m:
                textparts.append(text)
                break
            textparts.append(m.group(1)+"\n")
            text = m.group(2)

        textparts1 = []

        for textpart in textparts:

            if re.search(r"(^|\n)X\:\d",textpart) and not re.search(r"\n\%\%staves ",textpart):
                continue
                
            if not proceed_all_parts and not re.search(r"\n\%proceed",textpart):
                continue

            textparts1.append(textpart)

            staveparts = textpart.split("\n%%staves ")
            textpart   = ""
            
            vskip_present = 1     #    Examination of all parts where a stave change is made

            for stavepart in staveparts:

#                m = re.search(r"^ *(treble|alto|bass)(.*)$",stavepart,re.DOTALL)
#                if m:
#                    stavepart = m.group(2)
#                    text     = text + "\nV:0  " + m.group(1)
                if not vskip_present:
                    textpart = textpart + "\n%%vskip 0"
                vskip_present = re.search(r"\n%%vskip ",stavepart)
                if textpart == "":
                    textpart = stavepart
                    continue

                m = re.search(r"^(.*?)\n(.*)$",stavepart,re.DOTALL)
                staves   = m.group(1)    #  the first line contains stave data
                textrest = m.group(2)

                transp = {}    #   collection of transposings
                while 0 == 0:
                    m = re.search(r"^(.*[^a-zA-Z0-9\_|^])([a-zA-Z0-9\_]+)\:([a-zA-Z0-9\_\-\.]+)(.*)$",staves)
                    if not m:
                        break
                    transp[m.group(2)] = m.group(3)
                    staves = m.group(1) + m.group(2) + m.group(4)
                stavepart = staves + "\n" + textrest
                
                staves   = re.sub(r"[\[\]\{\}\(\)\|]"," ",staves,99999999)
                staves   = re.sub(r" +"," ",staves,99999999).strip()
                staves   = re.sub(r" ",",",staves,99999999)
#                print staves
                stavepart = re.sub(r"\nV:XX ","\nV:"+staves,stavepart,99999999)



#  3#  3. Expand combined score lines -->  e.g. Fl,Tr,Co

                while 0 == 0:
                    m = re.search(r"^(.*?\n)(V:)([a-zA-Z0-9\_]+,[a-zA-Z0-9\_\:,]+)(.*?)\n(.*?I: *)(\n|$)(.*)$",stavepart,re.DOTALL)
                    if not m:
                        break
                    stavepart = m.group(1)
                    for o in m.group(3).split(","):
                        o1 = re.sub(r"\_$"," ",o)
                        o1 = re.sub(r"\_$"," ",o1)
                        o1 = re.sub(r"\_$"," ",o1)
                        if not ("V:" + o1) in ("V:0 " + m.group(5) + m.group(6)):
                            stavepart = stavepart + "V:" + ("%-3s" % o1) + m.group(4) + "\n"
                            
                    stavepart = stavepart + m.group(5) + m.group(6) + m.group(7)

                for transpose_voice in transp:   #   Add transposings
                    stavepart = re.sub("\nV:"+transpose_voice+" ",
                                  "\nV:"+transpose_voice+" TRANSPOSE:" + transp[transpose_voice] + " ",
                                  stavepart,99999999)

                textpart = textpart + "\n%%staves " + stavepart
                
            textparts1[-1] = textpart
            
        text = "\n\n".join(textparts1)        


#   4.   Evaluate the transposings:

        text1 = ""
        while 0 == 0:
        
            m = re.search(r"^(.*?) TRANSPOSE:([a-zA-Z0-9\.\_\-]+) (.*?)\n(.*)$",text,re.DOTALL)
            if not m:
                text1 = text1 + text
                break
            text1 = text1 + m.group(1) + " " + self.transpose_zeile(m.group(3),m.group(2)) + "\n"
            text  = m.group(4)

#        text = "INXXCLUDE  " + chkey + "\n" + codecs.open("deco.fmt","r","utf-8").read() + "\n\n" + text

#        print text
#        exit()
        return text1


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

    def transpose_zeile (self,zeile,transp):

        zeile1 = ""

        while 0 == 0:
       
            if zeile == "":
                break
                
            m = re.search(r"^(treble|alto|bass) (.*)$",zeile)
            if m:
                zeile1 = zeile1 + m.group(1)
                zeile  = m.group(2)
                continue
       
            m = re.search(r"^\[K\:([ABCDEFGXZ])([b\#]?)(m*)\](.*)$",zeile)
            if m:
                note1   = m.group(1)
                note1v  = {"b":"_","\#":"^","":""}[m.group(2)]
                note1m  = m.group(3)
                note1tr = self.transpose_note(note1v+note1,transp)
                note1tr = re.sub(r"^(.*)(.)$","\\2\\1",note1tr)
                note1tr = re.sub(r"\_","b",note1tr,99)
                note1tr = re.sub(r"\^","#",note1tr,99)
                zeile1  = zeile1 + "[K:" + note1tr.upper() + m.group(3) + "]"
                zeile   = m.group(4)
                continue

            m = re.search(r"^\"([ABCDEFG][b\#m]+)(\d*)\"(\s*)(.*)$",zeile)
            if m:   #   Akkord-Angaben
                zeile1 = zeile1 + ( "\"" + 
                                    self.transpose_note(m.group(1),transp) +
                                    m.group(2) + "\"" + m.group(3) )
                zeile  = m.group(4)
                continue

            m = re.search(r"^\"([ABCDEFG][b\#m]*)(\d*)\/([ABCDEFG][b\#m]*)(\d*)\"(\s*)(.*)$",zeile)
            if m:    #  Slash-Akkorde
                zeile1 = zeile1 + ( "\"" +
                              self.transpose_note(m.group(1),transp) +
                              m.group(2) + "/" +
                              self.transpose_note(m.group(3),transp) +
                              m.group(4) + "\"" + m.group(5) )
                zeile  = m.group(6);  #  Slash-Akkorde
                continue
            
            
            m = re.search(r"^([\!\"])(.*?)([\!\"])(\s*)(.*)$",zeile)
            if m:   #  Decorations
                zeile1 = zeile1 + m.group(1) + m.group(2) + m.group(3) + m.group(4)
                zeile  = m.group(5)
                continue

            m = re.search(r"^([\^\_\=]*[ABCDEFGabcdefg][\'\,]*)(.*)$",zeile)
            if m:   #   normal note
                zeile1 = zeile1 + self.transpose_note(m.group(1),transp)
                zeile  = m.group(2)
                continue
            
            
            m = re.search(r"^(\[\S+?\:.+?\])(\s*)(.*)$",zeile)
            if m:
                zeile1 = zeile1 + m.group(1) + m.group(2)
                zeile  = m.group(3)
                continue

            m = re.search(r"^(\[\|\]|\[\||\|\]|\|\||\|:|:\||::|\|) (.*)$",zeile)
            if m:
                zeile1 = zeile1 + m.group(1) + " "
                zeile  = m.group(2);
                continue
    
            zeile1 = zeile1 + zeile[0]
            zeile  = zeile[1:]

        return zeile1


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


    def transpose_note (self,note,transp):
    
        m         = re.search(r"([\^\_\=]*)([ABCDEFGabcdefg])([\'\,]*)",note)
        transp    = float(transp)
        quinte    = int(transp)
        oktave    = int( 100 * ( 0.0001 + abs(int(transp)-transp) ) ) - 50
        vorz      = m.group(1)
        notename  = m.group(2)
        noteokt   = m.group(3)
        if notename.lower() == notename:
            notename = notename.upper()
            noteokt  = "'" + noteokt
        
        notenr      = { "F":-1,"C":0,"G":1,"D":2,"A":3,"E":4,"B":5 }[m.group(2).upper()]
        notenr_tr   = (notenr + quinte) % 7
        notename_tr = "CGDAEBF"[notenr_tr]
        vorz_tr     = vorz + "^" * ((notenr + quinte + 1) / 7) + "_" * ( 0 - ((notenr + quinte + 1) / 7) )
        vorz_tr     = re.sub(r"=","",vorz_tr,99)
        if int("0516273"[notenr_tr]) < int("0516273"[notenr]):
            oktave = oktave + 1
        noteokt_tr  = noteokt + "'" * oktave + "," * (-oktave)
        if notename_tr == notename_tr.upper() and len(re.sub(r"\'","",noteokt_tr,99)) < len(re.sub(r",","",noteokt_tr,99)):
            notename_tr = notename_tr.lower()
            noteokt_tr  = "," + noteokt_tr 
                
        while 0 == 0:
            m = re.search(r"^(.*)(\^_|_\^)(.*)$",vorz_tr)
            if not m:
                break
            vorz_tr = m.group(1) + m.group(3)
            
        while 0 == 0:
            m = re.search(r"^(.*)(\'\,|\,\')(.*)$",noteokt_tr)
            if not m:
                if re.search(r"(\'\,|\,\')",noteokt):
                    noteokt_tr = noteokt_tr0
                break
            noteokt_tr0 = noteokt_tr
            noteokt_tr  = m.group(1) + m.group(3)

        if vorz == "":
            vorz_tr = ""
        else:
            if vorz_tr == "":
                vorz_tr = "="            
            

        return( vorz_tr + notename_tr + noteokt_tr )        


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


    def xxexpand (self,pars):

        text0 = codecs.open(sys.argv[1],"r","utf-8").read()
        text  = re.sub(r"V:XX ","V:A_,T_,C1,C2,C3,C4,Fl,Tr,Sx,Co,Ps,Bk,1_,2_,3_,4_,5_,Pc",text0,9999999)
        #text  = re.sub(r"\nI: +","\nI:",text0,99999999,re.DOTALL)


        while 0 == 0:
            m    = re.search(r"^(.*?\n)(V:)([a-zA-Z0-9\_]+,[a-zA-Z0-9\_,]+)(.*?)\n(.*?I: *\n)(.*)$",text,re.DOTALL)
            if not m:
                break
            text = m.group(1)
            for o in m.group(3).split(","):
                o1 = re.sub(r"\_$"," ",o)
                o1 = re.sub(r"\_$"," ",o1)
                o1 = re.sub(r"\_$"," ",o1)
                if not ("V:" + o1) in m.group(5):
                    text = text + "V:" + o1 + m.group(4) + "\n"
            text = text + m.group(5) + m.group(6)

        # print text
        open("yyy.abc","w").write(text)
        os.system("abcm2ps yyy.abc -j 0 -O " + re.sub(r"\.abc$","",sys.argv[1]) + ".ps")


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


    def xxsc0 (self,pars):
    
        text = open(pars[0]).read()

        text1 = text
        
        voices_written = {}
        for zeile in text:
            if zeile[0:2] == "I:":
                voices_written = {}
            m = re.search(r"^(V\:)(\S+)(.*)$",zeile)
            if m.group(2) == "-":
                for voice in voices:
                    print voice 
                        
#            if zeile[0:2] == "I:":
            



#        voices       = {}
#        voices_cons  = {}


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

    def xxsc1 (self,pars):
    
        text = open(pars[0]).read()
        

        voices       = {}
        voices_cons  = {}
        
        onelines    = {}
        voiceseries = []
        text1       = ""

        voices_in_akko = {}
        for zeile in text.split("\n"):
            m = re.search(r"^V:([A-Za-z0-9\_]+) ",zeile)
            if m:
                try:
                    onelines[m.group(1)]
                except:
                    onelines[m.group(1)] = ""
                    voiceseries.append(m.group(1))
            if re.search(r"^(I\: *|\s*|\%[^\%].*)$",zeile):
                continue
            m = re.search(r"^V\:(-|[A-Z0-9a-z\_]+) (.*)(\||::)(.*)$",zeile)
            if m:
                if m.group(1) == "-":
                    for voice in voiceseries:
                        if not voices_in_akko[voice]:
                            onelines[voice] += m.group(2) + m.group(3) + m.group(4)
                else:
                    onelines[m.group(1)] += m.group(2) + m.group(3) + m.group(4)
                voice0 = m.group(1)
                vcount = 0
                m = re.search(r"w: (.*)(\||::)(.*)$",zeile)
            else:
                voice = voice0
                try:
                    onelines[m.group(1)]
                except:
                    onelines[m.group(1)] = ""
                    voiceseries.append(m.group(1))
                
                text1 = text1 + zeile + "\n"
            
        for voice in voiceseries:
            text1 = text1 + "V:" + voice + " \n" + onelines[voice] + "\n"
        print text1


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