diff --git a/README.md b/README.md index e0e9088..142647f 100644 --- a/README.md +++ b/README.md @@ -120,12 +120,12 @@ V1.0.2: - php+css : make the css styling not ugly on mobile - py: make sure that running option 4 automatically creates the folder for a new official webring participant and downloads the files all the same, instead of just iterating through the folders. - py: check that banners are at the most 5MB big +- py : if an argument is passed to lantern.py, enter automation mode, and at least automate option 4, 9 and 10 (ex: python3 lantern.py 4) ``` Future Versions: ``` V1.0.2: -- py : if an argument is passed to lantern.py, enter automation mode, and at least automate option 4 (python3 lantern.py 4) - py: in option 1, upon listing new links, if the description isn't empty, consider the link as trusted, and write it verified.csv. If description is empty, write it in unverified.csv instead. - py: in option 2, upon trusting links, if description doesnt exist, ask the user to write one that isn't empty, and if it does exist, ask the user to press enter to keep the existing description, otherwise write a new one - py: merge the option 2 and 3 together, and repurpose option 3 to become "edit links attributes" diff --git a/scripts/lantern.py b/scripts/lantern.py index e4dbd66..54124b1 100644 --- a/scripts/lantern.py +++ b/scripts/lantern.py @@ -6,6 +6,7 @@ import requests import shutil import time import urllib +import sys def main(): @@ -37,6 +38,8 @@ def main(): + + print_colors(""" ; ED. @@ -132,7 +135,17 @@ def main(): webpdf = pd.read_csv(webpcsvfile) print_colors(f"[+] file exists, your Webring URL is {instance}") - while True: + ##### CHECK IF ARGUMENTS ARE PASSED TO ENTER PROMPT-LESS MODE ##### + if len(sys.argv) == 2 and sys.argv[1] == "4": + print("4) Synchronize new links from existing webring participants into your unverified.csv file") + option=4 + elif len(sys.argv) == 2 and sys.argv[1] == "9": + print("remove duplicate urls from instance") + option=9 + elif len(sys.argv) == 2 and sys.argv[1] == "10": + print("Perform sanity checks on all csv files for all instances") + option=10 + else: time.sleep(1.5) print_colors(""" [+] Welcome to your own Darknet Lantern Instance, where you can explore the Darknet and help others do the same. @@ -162,7 +175,8 @@ Maintenance: option = int(option) except ValueError: print_colors(f"[-] Exiting. {option} is not a valid option.", bold=True, is_error=True) - break + return False + while True: match option: ########## MANAGING WEBSITE ENTRIES ################# @@ -209,6 +223,7 @@ Maintenance: choice=input("\n[+] Want to add another website ? (y/n) ") if choice == "n": break + break case 2: @@ -254,6 +269,7 @@ Maintenance: choice=input("\n[+] Want to trust another website ? (y/n) ") if choice == "n": break + break case 3: print_colors("[+] Untrust a Website entry (move an entry from verified to unverified.csv)") @@ -292,6 +308,7 @@ Maintenance: vdf.drop(index, inplace= True) vdf.to_csv(verifiedcsvfile, index=False) print_colors("[+] Link is now moved to unverified.csv!") + break ####### MANAGING WEBRING PARTICIPANTS ########### @@ -467,7 +484,7 @@ Maintenance: csvdf.drop(i, inplace= True) csvdf.to_csv(csvfilepath, index=False) rows2delete= [] # it is an empty list at first - + break @@ -612,6 +629,7 @@ Maintenance: print_colors(f"[+] REMOVING ROW: {i}{row}") csvdf.drop(i, inplace= True) csvdf.to_csv(csvfilepath, index=False) + break ############################################## @@ -733,6 +751,7 @@ Maintenance: break except Exception: break + break @@ -810,6 +829,7 @@ Maintenance: print_colors(f"[-] An unexpected error occurred: {str(e)}", is_error=True) except Exception: break + break @@ -881,6 +901,7 @@ Maintenance: print_colors(f"[-] An unexpected error occurred: {str(e)}", is_error=True) except Exception: break + break @@ -900,6 +921,7 @@ Maintenance: except Exception as e: print_colors(f"An error occurred while processing {csvfilepath}: {e}") break + break case 10: print_colors("[+] 10) perform sanity checks on all csv files (to mark them as sensitive / or remove the ones that are blacklisted)") @@ -970,10 +992,11 @@ Maintenance: csvdf.drop(i, inplace= True) csvdf.to_csv(csvfilepath, index=False) #read=input("Continue?") + break case 0: print_colors(f"[-] Exiting", bold=True) - break + break diff --git a/scripts/test.py b/scripts/test.py index 44f2db1..d640da0 100644 --- a/scripts/test.py +++ b/scripts/test.py @@ -1,12 +1,44 @@ import sys def main(): - print(sys.argv, len(sys.argv)) + #print(sys.argv, len(sys.argv)) option='' - if len(sys.argv) == 2: - print("option = ", sys.argv[1]) - option=sys.argv[1] + if len(sys.argv) == 2 and sys.argv[1] == "4": + print("4) Synchronize new links from existing webring participants into your unverified.csv file") + elif len(sys.argv) == 2 and sys.argv[1] == "9": + print("remove duplicate urls from instance") + elif len(sys.argv) == 2 and sys.argv[1] == "10": + print("Perform sanity checks on all csv files for all instances") + else: + print(""" +[+] Welcome to your own Darknet Lantern Instance, where you can explore the Darknet and help others do the same. + +Managing Websites: + 1) Add a new Website entry (into unverified.csv) + 2) Trust a Website entry (move an entry from unverified to verified.csv) + 3) Untrust a Website entry (move an entry from unverified to verified.csv) + +Managing Webring Participants: + 4) Synchronize new links from existing webring participants, into your unverified.csv file + 5) Add a new webring participant (and download their files into their directory (without trusting them yet!)) + 6) Trust/UnTrust/Blacklist a webring participant (Potentially dangerous) + +Managing Wordlists: + 7) Add/Remove Words/URLs in the sensitive list (ex: drug) + 8) Add/Remove Words/URLs or links in the blacklist (ex: porn) + +Maintenance: + 9) Remove the duplicate URLs for your own instance + 10) Perform sanity checks on all csv files for all instances (to mark them as sensitive / or remove the ones that are blacklisted) + + 0) Exit + """) + option = input("Select an option? (0-10): ").strip() + + + + + - print("option =", option) if __name__ == '__main__':