Nyanpre commited on
Commit
05e3b13
·
verified ·
1 Parent(s): 09c9699

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -19
app.py CHANGED
@@ -1,18 +1,24 @@
1
  import gradio as gr
2
  import pandas as pd
3
  from atproto import Client
4
- from huggingface_hub import Repository, hf_hub_download
5
  import os
6
 
7
  # --- 設定 ---
8
- DATASET_REPO_URL = "your-username/bluesky-archive-data" # 保存Datasetリポジ
 
9
  DATA_FILE = "data.csv"
10
 
11
- # --- Blueskyから取得する関数 ---
 
 
 
 
 
12
  def fetch_and_save():
13
  client = Client()
14
- # 検索(公開API)
15
- response = client.app.bsky.feed.search_posts(q="#青空怪文庫", limit=100)
16
 
17
  new_data = []
18
  for post in response.posts:
@@ -24,27 +30,31 @@ def fetch_and_save():
24
  })
25
 
26
  df = pd.DataFrame(new_data)
27
- # ここでDatasetリポジトリにpushする処理を追加(huggingface_hubを使用)
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  return df
29
 
30
  # --- UI部分 (Gradio) ---
31
- with gr.Blocks(title="青空怪文庫 DB") as demo:
32
- gr.Markdown("# 👻 #青空怪文庫 アーカイブ")
33
 
34
  with gr.Row():
35
- search_input = gr.Textbox(label="ワード検索")
36
- refresh_btn = gr.Button("最新データを取得", variant="primary")
37
 
38
- data_table = gr.Dataframe(
39
- headers=["日付", "投稿者", "本文", "URL"],
40
- datatype=["str", "str", "str", "str"],
41
- interactive=False
42
- )
43
 
44
- # ボタンを押した時の動き
45
  refresh_btn.click(fn=fetch_and_save, outputs=data_table)
46
-
47
- # 起動時にデータを読み込む
48
- demo.load(fn=fetch_and_save, outputs=data_table)
49
 
50
  demo.launch()
 
1
  import gradio as gr
2
  import pandas as pd
3
  from atproto import Client
4
+ from huggingface_hub import HfApi, hf_hub_download
5
  import os
6
 
7
  # --- 設定 ---
8
+ # 保存データセッ名(例: "ユーザー名/データセット名")
9
+ DATASET_ID = "your-username/bluesky-archive-data"
10
  DATA_FILE = "data.csv"
11
 
12
+ # Hugging Faceの書き込み権限(Settings -> Access Tokens で作成したものを Secret に設定推奨)
13
+ HF_TOKEN = os.getenv("HF_TOKEN")
14
+
15
+ api = HfApi()
16
+
17
+ # --- データを取得して保存する関数 ---
18
  def fetch_and_save():
19
  client = Client()
20
+ # Blueskyから検索
21
+ response = client.app.bsky.feed.search_posts(q="#青空怪文庫", limit=50)
22
 
23
  new_data = []
24
  for post in response.posts:
 
30
  })
31
 
32
  df = pd.DataFrame(new_data)
33
+
34
+ # 1. 一旦ローカルに保存
35
+ df.to_csv(DATA_FILE, index=False)
36
+
37
+ # 2. Hugging Face Datasetリポジトリにアップロード
38
+ if HF_TOKEN:
39
+ api.upload_file(
40
+ path_or_fileobj=DATA_FILE,
41
+ path_in_repo=DATA_FILE,
42
+ repo_id=DATASET_ID,
43
+ repo_type="dataset",
44
+ token=HF_TOKEN
45
+ )
46
+
47
  return df
48
 
49
  # --- UI部分 (Gradio) ---
50
+ with gr.Blocks() as demo:
51
+ gr.Markdown("# 👻 #青空怪文庫 自動アーカイブ")
52
 
53
  with gr.Row():
54
+ refresh_btn = gr.Button("最新デタを取得&保存", variant="primary")
 
55
 
56
+ data_table = gr.Dataframe()
 
 
 
 
57
 
 
58
  refresh_btn.click(fn=fetch_and_save, outputs=data_table)
 
 
 
59
 
60
  demo.launch()