File size: 3,817 Bytes
5312808
be8a5d3
ae80b3f
 
5312808
be8a5d3
b22d44e
be8a5d3
63e1b1c
 
be8a5d3
 
 
 
 
edc7b7f
305b2db
be8a5d3
 
63e1b1c
427bc20
4cf1b21
 
427bc20
 
 
4cf1b21
be8a5d3
427bc20
 
489bf3c
 
 
 
 
 
63e1b1c
 
 
5312808
7847b1d
 
5312808
7847b1d
 
 
1a28ce3
 
 
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
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 img = document.createElement('img');
                        img.src = '/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 = '9999';
                        document.body.appendChild(img);
                    } else if (data === 0) {
                        const existingImg = document.querySelector('img');
                        if (existingImg) {
                            existingImg.remove();
                        }
                    }
                })
                .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)