/ gopher.mu
gopher.mu
1 #!/usr/bin/env python3 2 #^^^^ <--> Nomadnet specific to prevent page caching, may change if you like. 3 4 import urllib.parse 5 import textwrap 6 import time 7 from os import environ 8 import os 9 import pituophis 10 11 backurl = "" 12 def onReceive(message): 13 type = "1" 14 #results = pituophis.get(message).text() 15 #print(results) 16 #print ("1 "+message) 17 message = message.replace("^",":") 18 message = message.replace("%3F","?") 19 message = message.replace("%3D","=") 20 message = message.replace("%09","?") 21 22 #print ("2 "+message) 23 24 parse = message.split("/") 25 host = parse[0] 26 if len(parse) >1 : 27 if len(parse[1]) > 1 : 28 type = parse[1][:1] 29 else : 30 type = parse[1] 31 32 #print (type) 33 print ("`B595 `!`["+host+"`:/page/gopher.mu`resultat="+host+"]`b` "+message) 34 print ("---") 35 if type == '0' or type =='3': 36 content = pituophis.get("gopher://"+message).text() 37 content = content.replace("\t"," ") 38 content = content.replace("\r","") 39 content = content.replace("`",chr(39)) 40 print ("`=") 41 print (content) 42 print ("`=") 43 44 else : 45 menu = pituophis.get("gopher://"+message).menu() 46 for item in menu: 47 if item.port !="" : 48 #port = "" 49 port ="^"+str(item.port) 50 else : 51 port = "" 52 url = item.host+port+'/'+item.type+item.path 53 url = url.replace("?","%09") 54 url = url.replace("=","%3D") 55 56 #print(item.type) 57 itemtext = item.text.replace("[","(") 58 itemtext = itemtext.replace("]",")") 59 itemtext = itemtext.replace("\t"," ") 60 #print (item.path[4:]) 61 62 if item.type == '0': 63 print('`B217`!`['+itemtext+'`:/page/gopher.mu`resultat='+url+'|backurl='+message+']`b') 64 elif item.type == '1' : 65 print('`B166`!`['+itemtext+'`:/page/gopher.mu`resultat='+url+'|backurl='+message+']`b') 66 elif item.type == 'h' and item.path[0:13] == "URL:gemini://" : 67 print('`B303`!`['+itemtext+'`:/page/rgproxy.mu`resultat='+item.path[4:]+'|backurl=gopher://'+message+']`b') 68 elif item.type == '7' : 69 print(item.text) 70 print("") 71 print('`B444`<30|user_input`>`b `!`B605`[Submit`:/page/gopher.mu`resultat='+url+'|user_input|backurl='+message+']`b') 72 else : 73 content = item.text.replace("\t"," ") 74 content = content.replace("\r","") 75 content = content.replace("\n","") 76 content = content.replace("`",chr(39)) 77 content = content.replace(chr(34),chr(39)) 78 #content = content.replace("\92","\92\92") 79 #content = ascii(content) 80 print ("`=") 81 #print (content[1:-1]) 82 print(content) 83 print ("`=") 84 85 #print(item.path) 86 #print(item.host) 87 #print(item.port) 88 89 if environ.get("var_backurl") != None : 90 backurl = str(environ.get("var_backurl")) 91 92 print ("> Gopher Proxy `F919 Beta Version, under construction`f") 93 print ("") 94 print ('Input Gopher link `B500gopher://`B444`<30|user_input`>`b `!`B500`[Go to link`:/page/gopher.mu`user_input]`b') 95 print ("") 96 #print ("`B559`!`[Main menu`:/page/index.mu]`b `B329`!`[Proxy Menu`:/page/gopher.mu`resultat=]`b" ) 97 if backurl[:9] == "gemini://" : 98 print ("`B559`!`[Main menu`:/page/index.mu]`b `B329`!`[Proxy Menu`:/page/gopher.mu`resultat=]`b `B128`!`[Search Engine`:/page/gopher.mu`resultat=gopher.floodgap.com/1/v2/]`b `B659`!`[Back`:/page/rgproxy.mu`resultat="+backurl+"]`b") 99 else : 100 print ("`B559`!`[Main menu`:/page/index.mu]`b `B329`!`[Proxy Menu`:/page/gopher.mu`resultat=]`b `B128`!`[Search Engine`:/page/gopher.mu`resultat=gopher.floodgap.com/1/v2/]`b `B659`!`[Back`:/page/gopher.mu`resultat="+backurl+"]`b") 101 print ("") 102 103 if environ.get("field_user_input") != None and environ.get("var_resultat") != None: 104 os.environ['var_resultat'] = environ.get("var_resultat")+"%09"+environ.get("field_user_input") 105 106 107 if environ.get("field_user_input") != None and environ.get("var_resultat") == None: 108 os.environ['var_resultat'] = environ.get("field_user_input") 109 110 if environ.get("var_resultat") == None or environ.get("var_resultat") == "": 111 112 print ('>> Bookmarks') 113 print ("") 114 print ('`!`[Mozz.us`:/page/gopher.mu`resultat=mozz.us]') 115 print ("") 116 print ('`!`[1436.ninja`:/page/gopher.mu`resultat=1436.ninja]') 117 print ("") 118 print ('`!`[Gopherpedia`:/page/gopher.mu`resultat=gopherpedia.com]') 119 print ("") 120 print ('`!`[Floodgap`:/page/gopher.mu`resultat=gopher.floodgap.com]') 121 print ("") 122 123 else : 124 url = environ.get("var_resultat") 125 urlcorrect=url.replace(":","^") 126 urlcorrect=url.replace("=","%3D") 127 urlcorrect=url.replace(" ","%20") 128 urlcorrect=url.replace("?","%09") 129 130 131 onReceive(urlcorrect) 132 133 print ("you're on "+url) 134 print (" back link is "+backurl)