mirror of
				https://github.com/xtekky/gpt4free.git
				synced 2025-10-31 11:36:26 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from flask import render_template, send_file, redirect
 | |
| from time import time
 | |
| from os import urandom
 | |
| import sys, os
 | |
| 
 | |
| if getattr(sys, 'frozen', False):
 | |
|     assets_folder = os.path.join(sys._MEIPASS, "client")
 | |
| else:
 | |
|     assets_folder = "./../client"
 | |
| 
 | |
| class Website:
 | |
|     def __init__(self, app) -> None:
 | |
|         self.app = app
 | |
|         self.routes = {
 | |
|             '/': {
 | |
|                 'function': lambda: redirect('/chat'),
 | |
|                 'methods': ['GET', 'POST']
 | |
|             },
 | |
|             '/chat/': {
 | |
|                 'function': self._index,
 | |
|                 'methods': ['GET', 'POST']
 | |
|             },
 | |
|             '/chat/<conversation_id>': {
 | |
|                 'function': self._chat,
 | |
|                 'methods': ['GET', 'POST']
 | |
|             },
 | |
|             '/assets/<folder>/<file>': {
 | |
|                 'function': self._assets,
 | |
|                 'methods': ['GET', 'POST']
 | |
|             }
 | |
|         }
 | |
| 
 | |
|     def _chat(self, conversation_id):
 | |
|         if '-' not in conversation_id:
 | |
|             return redirect('/chat')
 | |
| 
 | |
|         return render_template('index.html', chat_id = conversation_id)
 | |
| 
 | |
|     def _index(self):
 | |
|         return render_template('index.html', chat_id = f'{urandom(4).hex()}-{urandom(2).hex()}-{urandom(2).hex()}-{urandom(2).hex()}-{hex(int(time() * 1000))[2:]}')
 | |
| 
 | |
|     def _assets(self, folder: str, file: str):
 | |
|         try:
 | |
|             return send_file(f"{assets_folder}/{folder}/{file}", as_attachment=False)
 | |
|         except:
 | |
|             return "File not found", 404 | 
