You've already forked KemoFureApi
							
							Compare commits
	
		
			3 Commits
		
	
	
		
			master
			...
			26a98b53d7
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 26a98b53d7 | |||
| a36e6940d9 | |||
| 0ce68c606f | 
							
								
								
									
										6
									
								
								app.py
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								app.py
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ from flask_restful import Api | |||||||
|  |  | ||||||
| from modules.KF3.database import Database as KF3DB | from modules.KF3.database import Database as KF3DB | ||||||
| from modules.Kingdom.database import Database as KFKDB | from modules.Kingdom.database import Database as KFKDB | ||||||
| from modules.proxy import AgreementProxy, LaunchProxy, UpdateProxy | from modules.Archive.database import Database as KFADB | ||||||
|  |  | ||||||
| app = Flask(__name__) | app = Flask(__name__) | ||||||
| app.config['JSON_AS_ASCII'] = False | app.config['JSON_AS_ASCII'] = False | ||||||
| @@ -11,11 +11,9 @@ app.databases = {} | |||||||
|  |  | ||||||
| api = Api(app) | api = Api(app) | ||||||
|  |  | ||||||
| api.add_resource(LaunchProxy, "/DMM/launch") |  | ||||||
| api.add_resource(UpdateProxy, "/DMM/filelist", "/DMM/update") |  | ||||||
| api.add_resource(AgreementProxy, "/DMM/agreement") |  | ||||||
| KF3DB(api) | KF3DB(api) | ||||||
| KFKDB(api) | KFKDB(api) | ||||||
|  | KFADB(api) | ||||||
|  |  | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     app.run(host='127.0.0.1', port=8080, debug=True) |     app.run(host='127.0.0.1', port=8080, debug=True) | ||||||
							
								
								
									
										22
									
								
								modules/Archive/database.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/Archive/database.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | import json | ||||||
|  | from .databaseController import DatabaseController | ||||||
|  | from .endpoints.query import Archive_Query | ||||||
|  |  | ||||||
|  | class Database: | ||||||
|  |     db : DatabaseController = None | ||||||
|  |     processed_friends = {} | ||||||
|  |     item_stages = {} | ||||||
|  |  | ||||||
|  |     def __init__(self, api) -> None: | ||||||
|  |         app = api.app | ||||||
|  |         if "Archive" in app.databases: | ||||||
|  |             del app.databases["Archive"] | ||||||
|  |  | ||||||
|  |         self.reload_data() | ||||||
|  |  | ||||||
|  |         app.databases["Archive"] = self | ||||||
|  |  | ||||||
|  |         api.add_resource(Archive_Query, "/Archive/Query") | ||||||
|  |    | ||||||
|  |     def reload_data(self): | ||||||
|  |         self.db = DatabaseController("/home/pi/python/Katbots/JapariArchive/database.db") | ||||||
							
								
								
									
										21
									
								
								modules/Archive/databaseController.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								modules/Archive/databaseController.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | |||||||
|  | import os | ||||||
|  | import sqlite3 | ||||||
|  |  | ||||||
|  | TABLE_ACCOUNTS  = "accounts" | ||||||
|  | TABLE_X         = "x_posts" | ||||||
|  |  | ||||||
|  | class DatabaseController: | ||||||
|  |     def __init__(self, db_name): | ||||||
|  |         self.conn = sqlite3.connect(db_name, isolation_level="DEFERRED") | ||||||
|  |         self.cursor = self.conn.cursor() | ||||||
|  |  | ||||||
|  |     def run_query(self, query): | ||||||
|  |         try: | ||||||
|  |             self.cursor.execute(query) | ||||||
|  |             results = self.cursor.fetchall() | ||||||
|  |             return results | ||||||
|  |         except: | ||||||
|  |             return None | ||||||
|  |  | ||||||
|  |     def close(self): | ||||||
|  |         self.conn.close() | ||||||
							
								
								
									
										21
									
								
								modules/Archive/endpoints/query.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								modules/Archive/endpoints/query.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | |||||||
|  | import json | ||||||
|  | from flask_restful import Resource | ||||||
|  | from flask import current_app as app, jsonify | ||||||
|  |  | ||||||
|  | class Archive_Query(Resource): | ||||||
|  |     def post(self, query:str): | ||||||
|  |         db = app.databases["Archive"] | ||||||
|  |  | ||||||
|  |         result = db.run_query(query) | ||||||
|  |  | ||||||
|  |         if result is None: | ||||||
|  |             response = app.response_class(status=400) | ||||||
|  |         else: | ||||||
|  |             response = app.response_class( | ||||||
|  |                 response=json.dumps(result, ensure_ascii=False, indent=1), | ||||||
|  |                 status=200, | ||||||
|  |                 mimetype='application/json' | ||||||
|  |             ) | ||||||
|  |  | ||||||
|  |         response.headers.add("Access-Control-Allow-Origin", "*") | ||||||
|  |         return response    | ||||||
| @@ -239,24 +239,24 @@ async def manual(): | |||||||
|     downloaded_cache = {} |     downloaded_cache = {} | ||||||
|     downloaded_files = {} |     downloaded_files = {} | ||||||
|      |      | ||||||
|     # async with aiohttp.ClientSession() as session: |     async with aiohttp.ClientSession() as session: | ||||||
|     #     param = encode(json.dumps({"version":"1.0.0","dmm_viewer_id":0,"platform":1})) |         param = encode(json.dumps({"version":"1.0.0","dmm_viewer_id":0,"platform":1})) | ||||||
|     #     request = await download_bytes(servers[0] + "paradesv/common/GetUrl.do?param=" + param, session) |         request = await download_bytes(servers[0] + "paradesv/common/GetUrl.do?param=" + param, session) | ||||||
|     #     result  = gzip.decompress(request) |         result  = gzip.decompress(request) | ||||||
|     #     response = json.loads(result) |         response = json.loads(result) | ||||||
|     #     asset_bundle_url = response["asset_bundle_url"] |         asset_bundle_url = response["asset_bundle_url"] | ||||||
|     #     urlName = asset_bundle_url.split("-")[2] |         urlName = asset_bundle_url.split("-")[2] | ||||||
|  |  | ||||||
|     # print("downloading from", servers[0]) |     print("downloading from", servers[0]) | ||||||
|     # downloaded_cache = await download_cache(urlName, servers[0]) |     downloaded_cache = await download_cache(urlName, servers[0]) | ||||||
|     # downloaded_files = await download_files(urlName, asset_bundle_url, "Windows") |     downloaded_files = await download_files(urlName, asset_bundle_url, "Windows") | ||||||
|  |  | ||||||
|     # if downloaded_cache != [] and downloaded_cache != None: |     if downloaded_cache != [] and downloaded_cache != None: | ||||||
|     #     with open("/var/www/html/Katworks/KF/assets/KF3/lastUpdate_prod_cache.json", "wt", encoding="utf-8") as file: |         with open("/var/www/html/Katworks/KF/assets/KF3/lastUpdate_prod_cache.json", "wt", encoding="utf-8") as file: | ||||||
|     #         json.dump(downloaded_cache, file, ensure_ascii=False, indent=1) |             json.dump(downloaded_cache, file, ensure_ascii=False, indent=1) | ||||||
|     # if downloaded_files != [] and downloaded_files != None: |     if downloaded_files != [] and downloaded_files != None: | ||||||
|     #     with open("/var/www/html/Katworks/KF/assets/KF3/lastUpdate_prod_files.json", "wt", encoding="utf-8") as file: |         with open("/var/www/html/Katworks/KF/assets/KF3/lastUpdate_prod_files.json", "wt", encoding="utf-8") as file: | ||||||
|     #         json.dump(downloaded_files, file, ensure_ascii=False, indent=1) |             json.dump(downloaded_files, file, ensure_ascii=False, indent=1) | ||||||
|  |  | ||||||
|     print("downloading from", servers[1]) |     print("downloading from", servers[1]) | ||||||
|     asset_bundle_url = "https://parade-mobile-develop01-app.kemono-friends-3.jp/AssetBundles/0.0.0/latest" |     asset_bundle_url = "https://parade-mobile-develop01-app.kemono-friends-3.jp/AssetBundles/0.0.0/latest" | ||||||
|   | |||||||
| @@ -1,48 +0,0 @@ | |||||||
| from flask_restful import Resource |  | ||||||
| from flask import current_app as app, request, Request |  | ||||||
|  |  | ||||||
| import requests |  | ||||||
|  |  | ||||||
| def relayRequest(user_request : Request, url, headers): |  | ||||||
|     with requests.Session() as session: |  | ||||||
|         requests.utils.add_dict_to_cookiejar(session.cookies, user_request.cookies) |  | ||||||
|         response = session.post(url, headers=headers, data=request.data) |  | ||||||
|          |  | ||||||
|         result = app.response_class( |  | ||||||
|                 response=response.text, |  | ||||||
|                 status=200, |  | ||||||
|                 mimetype='application/json' |  | ||||||
|         ) |  | ||||||
|         result.headers.add("Access-Control-Allow-Origin", "*") |  | ||||||
|  |  | ||||||
|     return result |  | ||||||
|  |  | ||||||
| class LaunchProxy(Resource): |  | ||||||
|     def post(self): |  | ||||||
|         url = "https://apidgp-gameplayer.games.dmm.com/v5/launch/cl" |  | ||||||
|         headers = {"User-Agent": "DMMGamePlayer5-Win/5.3.12 Electron/32.1.0", |  | ||||||
|                 "Client-App": "DMMGamePlayer5", |  | ||||||
|                     "Client-version": "5.3.12", |  | ||||||
|                     "Content-Type": "application/json"} |  | ||||||
|  |  | ||||||
|         return relayRequest(request, url, headers)  |  | ||||||
|          |  | ||||||
| class UpdateProxy(Resource): |  | ||||||
|     def post(self): |  | ||||||
|         url = "https://apidgp-gameplayer.games.dmm.com/v5/r2/launch/cl" |  | ||||||
|         headers = {"User-Agent": "DMMGamePlayer5-Win/5.3.12 Electron/32.1.0", |  | ||||||
|                 "Client-App": "DMMGamePlayer5", |  | ||||||
|                     "Client-version": "5.3.12", |  | ||||||
|                     "Content-Type": "application/json"} |  | ||||||
|  |  | ||||||
|         return relayRequest(request, url, headers)  |  | ||||||
|      |  | ||||||
| class AgreementProxy(Resource): |  | ||||||
|     def post(self): |  | ||||||
|         url = "https://apidgp-gameplayer.games.dmm.com/v5/agreement/confirm/client" |  | ||||||
|         headers = {"User-Agent": "DMMGamePlayer5-Win/5.3.12 Electron/32.1.0", |  | ||||||
|                 "Client-App": "DMMGamePlayer5", |  | ||||||
|                     "Client-version": "5.3.12", |  | ||||||
|                     "Content-Type": "application/json"} |  | ||||||
|  |  | ||||||
|         return relayRequest(request, url, headers)  |  | ||||||
		Reference in New Issue
	
	Block a user