Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python2.7
- #In directory cwd/input/list.txt place some Links in format: http://blub.fu, Category, Category, http://blub2.fu and so on. Have fun! ;-D
- import os
- class readFile(object):
- Filename = "input/list.txt"
- Mode = 'a+'
- Handle = ''
- def __init__(self, Name = "input/list.txt"):
- self.Filename=Name
- self.Open(self.Filename, self.Mode)
- def ReadNew(self, blocks=0):
- if blocks != 0:
- return -1
- self.Handle.seek(0)
- self.Input = self.Read()
- return self.Input
- def Read(self):
- self.Input = self.Handle.read()
- return self.Input
- def Open(self, Name, Mode):
- self.Handle = open(Name, Mode)
- return self.Handle
- def Close(self):
- self.Handle.close()
- def write(self):
- self.Handle.close()
- self.Handle = open(self.Filename+".done", self.Mode)
- self.Handle.write(self.Input)
- self.Handle.close()
- self.Handle = open(self.Filename, self.Mode)
- class Parser(object):
- Input = ""
- Links = []
- Cats = []
- ParsedCats = []
- Debug = 0
- CatNr = 0
- def __init__(self, ParseStr, debug=0):
- self.Debug = debug
- self.Input = ParseStr
- self.delNewline()
- self.delSpaces()
- if self.Debug != 0:
- print("|################Debugging-Mode####################")
- def Parse(self):
- self.Links = []
- self.Cats = []
- self.ParsedCats=[]
- Checkup = True
- self.CatNr = 0
- self.Links = self.Input.split(",")
- for i in list(range(len(self.Links))):
- if len(self.Links[i]) > 12 and self.Links[0]!='h':
- Checkup = False
- self.CatNr += 1
- elif Checkup == False:
- self.Cats.append(self.Links[i].lower()) #identify obj later,
- self.ParsedCats.append(self.Links[i].lower())
- self.ParsedCats.append(self.CatNr)
- self.Links[i] = ''
- self.delEmpty()
- if self.Debug != 0:
- print("|Links : "+str(self.Links))
- print("|Cats : "+str(self.Cats))
- def delEmpty(self):
- count =0
- for i in list(range(len(self.Links))):
- if self.Links[i] == '':
- count+=1
- for o in list(range(count)):
- self.Links.remove('')
- def delNewline(self):
- self.Input = self.Input.replace('\n', '')
- def delSpaces(self):
- self.Input = self.Input.replace(' ', '')
- def setDebug(self, mode):
- self.Debug=mode
- def getCats(self):
- return self.Cats
- def getParsedCats(self):
- return self.ParsedCats
- def getLinks(self):
- return self.Links
- def getCatCount(self):
- return self.CatNr
- class Search(object):
- ParserObj = ''
- CatCount = 0
- Links = []
- PCats = [] #copyd list with len=Cats*2 ('cat', LinkNumber..)
- MatchPoint = -1 #Did i found any? If not, set -1 and return Nothing.
- def __init__(self, ParserObj):
- self.ParserObj= ParserObj
- self.ParserObj.setDebug (0)
- self.ParserObj.Parse ()
- self.CatCount = self.ParserObj.getCatCount ()
- self.Links = self.ParserObj.getLinks ()
- self.Cats = self.ParserObj.getCats ()
- self.PCats = self.ParserObj.getParsedCats()
- def SearchLinkByCat(self, CatStr):
- CatStr=CatStr.encode("utf8")
- for i in list(range(len(self.Cats))):
- if self.Cats[i]==CatStr.lower():
- self.MatchPoint=self.PCats[(i*2)+1]-1
- return self.PCats[(i*2)+1] #grep Integer in list that is exactly Parser.Links*2 sized, so we have every second element the Linknum for what the cats are parsd
- if self.MatchPoint==-1:
- return None
- def getLinkByPCatNr(self, Number=-1):
- if self.MatchPoint==-1:
- return None
- if Number == -1:
- return self.Links[self.MatchPoint]
- else:
- return self.Links[Number]
- if __name__ == "__main__":
- integer=0
- LinkCounter=0
- readobj=readFile()
- parserobj=Parser(readobj.Read(), 0)
- searchObj=Search(parserobj)
- parserobj.setDebug(0)
- parserobj.Parse()
- """print("|Listed on Link : "+str(searchObj.SearchLinkByCat("ADD")))
- print("|Parsed Categorys: "+str(searchObj.PCats))
- print("|Link : "+searchObj.getLinkByPCatNr())
- print("|-----------------------------------------")"""
- for i in range(len(parserobj.Links)):
- LinkCounter+=1
- print("There listet "+str(LinkCounter)+" Link(s) in list.txt. What do you want to do?")
- print("* 1) Search by Category")
- print("* 2) Get by Linknumber")
- print("* 3) Exit")
- while integer == 0:
- Given=raw_input("What do you do? ")
- if Given == "1":
- Input = raw_input("Category... ")
- if searchObj.SearchLinkByCat(Input) == None:
- print("Sorry, didn't found any!")
- else:
- print(searchObj.getLinkByPCatNr(searchObj.SearchLinkByCat(Input)-1))
- elif Given == "2":
- Input = raw_input("Nr...:")
- if(int(Input)>LinkCounter):
- print("\nNot in List!\n")
- else:
- print("\n"+parserobj.Links[int(Input)-1]+"\n")
- elif Given == "3":
- integer=1
- elif Given == "exit":
- break;
- print("Exited.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement