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)