added proxy and tor support
This commit is contained in:
		
							parent
							
								
									972165018c
								
							
						
					
					
						commit
						e4af5bbd6a
					
				
							
								
								
									
										31
									
								
								microblog.py
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								microblog.py
									
									
									
									
									
								
							| @ -373,13 +373,32 @@ if __name__ == "__main__": | ||||
|         with open(config["file_output"], 'w') as f: | ||||
|             print(json.dumps(profile), file=f) | ||||
| 
 | ||||
|     import urllib.request as http | ||||
|     def fn1(webring_config):    # come up with better name later | ||||
|         def fetch(follow_list): | ||||
|             import urllib.request as http | ||||
|             def support_tor(proxy_var="https_proxy"): | ||||
|                 if proxy_var not in os.environ: | ||||
|                     return False | ||||
|                 proxy = os.environ[proxy_var] | ||||
|                 if proxy.find("socks://") < 0: | ||||
|                     return False | ||||
|                 import socket | ||||
|                 import socks | ||||
|                 host = proxy[proxy.rfind('/') + 1: proxy.rfind(':')] | ||||
|                 port = proxy[proxy.rfind(':') + 1:] | ||||
|                 socks.setdefaultproxy( | ||||
|                     socks.PROXY_TYPE_SOCKS5, host, int(port)) | ||||
|                 socket.socket = socks.socksocket | ||||
|                 return True | ||||
| 
 | ||||
|             other_people = [] | ||||
|             proxy_handler = http.ProxyHandler(None) # use OS vars | ||||
|             if support_tor("https_proxy") or support_tor("http_proxy"): | ||||
|                 proxy_handler = http.ProxyHandler({}) | ||||
|             conn = http.build_opener(proxy_handler) | ||||
|             for someone in follow_list: | ||||
|                 try: | ||||
|                     with http.urlopen(someone) as response: | ||||
|                     with conn.open(someone) as response: | ||||
|                         data = response.read() | ||||
|                         other_people.append(json.loads(data)) | ||||
|                 except http.HTTPError as e: | ||||
| @ -389,9 +408,7 @@ if __name__ == "__main__": | ||||
|                     print(e, file=sys.stderr) | ||||
|                     print("\t =>", someone, file=sys.stderr) | ||||
|             return other_people | ||||
|         # list_of_json_objs = [] | ||||
|         # with open("meta.json",'r') as f: | ||||
|         #     list_of_json_objs.append(json.loads(f.read())) | ||||
| 
 | ||||
|         list_of_json_objs = fetch(webring_config["list"]) | ||||
|         list_of_json_objs.sort( | ||||
|             key=lambda e: e["last-updated"], reverse=True) | ||||
| @ -423,7 +440,6 @@ if __name__ == "__main__": | ||||
|                 __lastupdated__= strftime( | ||||
|                     "%Y %b %d", localtime(epoch_timestamp)) | ||||
|             )) | ||||
|         # print(html, file=sys.stderr) | ||||
|         return rendered | ||||
| 
 | ||||
|     def main(): | ||||
| @ -488,3 +504,6 @@ if __name__ == "__main__": | ||||
|     except toml.decoder.TomlDecodeError: | ||||
|         traceback.print_exc() | ||||
|         print("\n\tYour configuration file is malformed.") | ||||
|     except ModuleNotFoundError: | ||||
|         traceback.print_exc() | ||||
|         print("\n\tIf the module is 'socks', Tor support has recently been added (install PySocks package)") | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user