class Ph0enix: def __init__(self): self.Config = CoreConfig() self.Cmd = Command() self.Validator = Validation() self.Request = RequestHandler() self.Error = ErrorHandler() def BuildLinks(self, Username: str): self.Username: str = Username self.BuiltLinks = self.Validator.LinkFormatter(self.Username) if (len(self.BuiltLinks) > 0): return self.BuiltLinks else: self.Cmd.Clear() print(f"{sd.eBan} No data found") Initiate() def StartSearch(self, Username, FormattedLinks: list): self.Username = Username self.Links: list = FormattedLinks self.FoundCount = 0 self.Matches = [] print(f"{sd.sBan} Searching for {bc.GC}{Username}{bc.BC}\n") for self.Link in self.Links: self.Website = self.Validator.GetWebsiteName(self.Link) self.IsInSite = self.Request.Search(self.Link, self.Username) if (self.IsInSite): self.FoundCount += 1 self.Matches.append(self.Link) print( f" | Website: {bc.GC}{self.Website}{bc.BC}\n | Status: {bc.GC}Match Found{bc.BC}\n | Location: {bc.GC}{self.Link}{bc.BC}\n" ) else: print( f" | Website: {bc.RC}{self.Website}{bc.BC}\n | Status: {bc.RC}Not Found{bc.BC}\n | Location: {bc.RC}{self.Link}{bc.BC}\n" ) return self.Matches, self.FoundCount def PrintResults(self, Results: list, FoundNum: int, TotalLinkCount: int): self.Cmd.Clear() self.Results: list = Results self.FoundCount = FoundNum self.TotalLinkCount = TotalLinkCount print( f"{sd.sBan} Found {bc.GC}{str(self.FoundCount)}{bc.BC} matches out of {bc.GC}{self.TotalLinkCount}{bc.BC} websites\n" ) for self.Match in self.Results: print( f" | Website: {bc.GC}{self.Validator.GetWebsiteName(self.Match)}{bc.BC}" ) print(f" | Location: {bc.GC}{self.Match}{bc.BC}\n") Initiate(True)
def commit(cls, message): command = ["git", "commit", "-m", "{}".format(message)] out = Command(command, cls.path, split=False) if not out.returncode == 0: print("git commit: {}".format(out.stderroutput)) return out
def apply_and_stage(cls, patch): with open(cls.path + "/commit", 'wb') as file: file.write(patch) out = Command("git apply commit", cls.path) res = out.returncode == 0 if not out.returncode == 0: print("git apply: {}".format(out.stderroutput)) out = Command("git add .", cls.path) res = res and out.returncode == 0 if not out.returncode == 0: print("git add: {}".format(out.stderroutput)) out = Command("git reset -- commit", cls.path) res = res and out.returncode == 0 if not out.returncode == 0: print("git reset: {}".format(out.stderroutput)) return res
def __init__(self): self.Config = CoreConfig() self.Cmd = Command() self.Validator = Validation() self.Request = RequestHandler() self.Error = ErrorHandler()
f" | Website: {bc.GC}{self.Validator.GetWebsiteName(self.Match)}{bc.BC}" ) print(f" | Location: {bc.GC}{self.Match}{bc.BC}\n") Initiate(True) if __name__ == '__main__': def Initiate(SeenIntro=False): try: Run = Ph0enix() if (not SeenIntro): print( f"{sd.iBan} Matches may not always be specific to the user you are looking for" ) print( f"{sd.iBan} For example, someone else could have used the same username elsewhere\n" ) Username = InputManager().SetUsername() WebsiteLinks = Run.BuildLinks(Username) SearchResults, FoundCount = Run.StartSearch(Username, WebsiteLinks) Run.PrintResults(SearchResults, FoundCount, len(WebsiteLinks)) except KeyboardInterrupt: quit() Command().Clear() Initiate()
def valid_repository(cls): if cls.path == "" or not os.path.isdir(cls.path): return False status = Command("git status", cls.path) return status.returncode == 0
def reset_to(cls, commit): res = Command("git reset --hard {}".format(commit), cls.path) return res.stderroutput == ""
def stash(cls): res = Command("git stash -u", cls.path) return res.stderroutput == ""
def stash_pop(cls): res = Command("git stash pop", cls.path) return res.stderroutput == ""
def tag(cls, tag): res = Command("git tag {}".format(tag), cls.path) return res.stderroutput == ""
def raw_diff(cls, commit): res = Command("git diff-tree -p {}".format(commit), cls.path, decodeUtf8=False) return res.stdoutput.split(b'\n')[1:-1]
def message(cls, commit): res = Command("git log -n 1 --pretty=format:%s {}".format(commit), cls.path) return res.stdoutput
def parents(cls, commit): res = Command("git rev-list --parents -n 1 {}".format(commit), cls.path) return res.stdoutput.strip().split(" ")[1:]
def current_hash(cls): return Command("git rev-parse HEAD", cls.path).stdoutput.strip()