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)