File size: 4,333 Bytes
5312808 be8a5d3 ae80b3f 5312808 be8a5d3 c34ad25 be8a5d3 63e1b1c be8a5d3 edc7b7f 305b2db be8a5d3 63e1b1c 427bc20 4cf1b21 427bc20 4cf1b21 be8a5d3 427bc20 489bf3c 63e1b1c 5312808 7847b1d 5312808 7847b1d 1a28ce3 ae80b3f 6683941 ae80b3f 4df8e70 ae80b3f 6683941 ae80b3f 6683941 ae80b3f 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 107 108 109 110 111 112 113 114 115 116 |
import os
import shutil
from flask import Flask, send_from_directory, abort, render_template_string
import requests
# リポジトリをクローンするディレクトリ
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/izum00/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()
# 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.")
# index.htmlの内容を読み込んで、JavaScriptを動的に追加
with open("index.html", "r") as file:
index_html_content = file.read()
# JavaScriptコードを追加する部分
js_code = """
<script>
setInterval(() => {
fetch('https://huggingface.co/spaces/soiz/cookie/raw/main/tof')
.then(response => response.json())
.then(data => {
if (data === 1) {
// 既存の画像を削除
const existingImg = document.querySelector('img');
if (!existingImg) { // 画像がまだ存在しない場合のみ追加
const img = document.createElement('img');
img.src = 'https://huggingface.co/spaces/soiz/cookie/raw/main/1.png';
img.style.position = 'fixed';
img.style.top = '0';
img.style.left = '0';
img.style.width = '100vw';
img.style.height = '100vh';
img.style.zIndex = '999999999999999999999999999999999999999999999999999999999999999999999999999999999999999';
document.body.appendChild(img);
}
} else if (data === 0) {
// 画像が存在する場合にのみ削除
const existingImg = document.querySelector('img');
if (existingImg) {
// 画像を削除
existingImg.remove();
// 念のためhidden=trueを設定
existingImg.hidden = true;
}
}
})
.catch(error => {
// エラー時の処理は特にしない
});
}, 10000); // 10秒ごとにリクエストを送信
</script>
"""
# index.htmlのbodyタグの前にJavaScriptを追加
index_html_content = index_html_content.replace("</body>", js_code + "</body>")
return render_template_string(index_html_content)
# 静的ファイルを提供するためのルート
@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)
|