/ 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)