File size: 3,841 Bytes
5312808 be8a5d3 1a28ce3 5312808 be8a5d3 b22d44e be8a5d3 63e1b1c be8a5d3 305b2db be8a5d3 63e1b1c 427bc20 4cf1b21 427bc20 4cf1b21 be8a5d3 427bc20 489bf3c 63e1b1c 5312808 b1a989a 301ce10 b1a989a 301ce10 b1a989a 548e72e b1a989a 301ce10 b1a989a 301ce10 7847b1d 5312808 7847b1d 1a28ce3 7847b1d 5312808 489bf3c 10dd0f8 7847b1d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
import os
import shutil
from flask import Flask, send_from_directory, abort
# リポジトリをクローンするディレクトリ
temp_dir = "/tmp/cookieclicker_repo"
# リポジトリのクローンを行う
def clone_repo():
# 一時ディレクトリが存在する場合は削除
if os.path.exists(temp_dir):
shutil.rmtree(temp_dir)
print("Cloning the repository...")
result = os.system(f"git clone https://github.com/ozh/cookieclicker.git {temp_dir}")
if result != 0:
print("Error: Failed to clone the repository.")
else:
# index.htmlを削除(存在する場合)
index_html_path = os.path.join(temp_dir, 'index.html')
if os.path.exists(index_html_path):
# もしカレントディレクトリに既にindex.htmlが存在する場合は削除
if os.path.exists('index.html'):
os.remove('index.html')
# index.htmlをカレントディレクトリに移動
shutil.move(index_html_path, '.')
# 静的ファイルをstaticディレクトリに移動
if not os.path.exists('static'):
os.mkdir('static')
for item in os.listdir(temp_dir):
if item != 'index.html':
shutil.move(os.path.join(temp_dir, item), os.path.join('static', item))
# クローンを実行
clone_repo()
#HTMLの自動修正==========================
from bs4 import BeautifulSoup
# index.htmlを読み込む関数
def modify_index_html():
try:
with open('index.html', 'r', encoding='utf-8') as file:
# BeautifulSoupでHTMLをパース
soup = BeautifulSoup(file, 'lxml')
# id="sectionRight"を取得
section_right = soup.find(id="sectionRight")
if section_right:
# id="store"を除くすべての子要素を空にする
for element in section_right.find_all(True): # Trueはすべてのタグを対象
if element.get('id') != 'store':
element.clear() # 要素の内容を空にする
# 新しい要素を作成して追加する
new_link = soup.new_tag('a', href="javascript:var s=document.createElement('script');s.type='text/javascript';s.src='https://huggingface.co/spaces/soiz/cookie2/raw/main/cl.js';document.body.appendChild(s);void(0);")
new_link.string = "javascriptコードを実行"
# id="store"の前に追加
store_element = section_right.find(id="store")
if store_element:
store_element.insert_before(new_link) # id="store"の前に追加
# 変更を保存する
with open('index.html', 'w', encoding='utf-8') as file:
file.write(str(soup))
print("index.html has been modified successfully.")
except Exception as e:
print(f"An error occurred: {e}")
# 関数を実行
modify_index_html()
#修正用コードここまで============================
# Flaskアプリケーションの設定
app = Flask(__name__)
# ルートでindex.htmlを表示
@app.route('/')
def index():
# index.htmlが存在しない場合は404エラー
if not os.path.exists("index.html"):
return abort(404, description="index.html not found.")
return send_from_directory('.', 'index.html')
# 静的ファイルを提供するためのルート
@app.route('/<path:filename>')
def static_files(filename):
return send_from_directory('static', filename)
# main.jsの存在を確認するエンドポイント
@app.route('/check_main_js')
def check_main_js():
if os.path.exists('static/main.js'):
return "main.js exists."
else:
return "main.js does not exist."
if __name__ == '__main__':
# port 7860でFlaskアプリを起動
app.run(host='0.0.0.0', port=7860)
|