Penut Chen commited on
Commit
5bd4136
1 Parent(s): 8c89f83

Add Bookmarks

Browse files
Files changed (4) hide show
  1. Intro.md +3 -0
  2. app.py +57 -15
  3. bookmarks.json +4 -0
  4. icon.png +0 -0
Intro.md ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ # Yuyu-Tei Price Crawler
2
+
3
+ [Yuyu-Tei Website](https://yuyu-tei.jp/game_ws/sell/sell_price.php)
app.py CHANGED
@@ -1,4 +1,5 @@
1
  import datetime
 
2
 
3
  import gradio as gr
4
  import pandas as pd
@@ -9,23 +10,60 @@ from bs4.element import Tag
9
 
10
  class App:
11
  def __init__(self) -> None:
12
- with gr.Blocks() as self.demo:
13
- gr.Markdown("# Yuyu Tei Price Crawler")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  with gr.Row():
15
- with gr.Column():
16
- ph = "e.g. https://yuyu-tei.jp/game_ws/sell/sell_price.php?ver=uma&menu=newest"
17
- self.input_url = gr.Textbox(label="URL", placeholder=ph)
18
- self.submit_btn = gr.Button("Submit")
19
- with gr.Column():
20
- self.output_file = gr.File(label="Excel", file_count="single")
21
- self.status = gr.Markdown("Ready")
22
-
23
- self.submit_btn.click(
24
- self.Download,
25
- self.input_url,
26
- [self.output_file, self.status],
 
 
 
 
 
 
27
  )
28
 
 
 
 
 
 
 
 
29
  def Download(self, url):
30
  try:
31
  ts = datetime.datetime.utcnow() + datetime.timedelta(hours=8)
@@ -36,7 +74,7 @@ class App:
36
  return None, f"Error: {e}"
37
 
38
  def Launch(self):
39
- self.demo.launch()
40
 
41
 
42
  def CrawlPage(url, output_path):
@@ -95,5 +133,9 @@ def GetCardNameFromPage(url):
95
  return card_name.text.strip()
96
 
97
 
 
 
 
 
98
  if __name__ == "__main__":
99
  App().Launch()
 
1
  import datetime
2
+ import json
3
 
4
  import gradio as gr
5
  import pandas as pd
 
10
 
11
  class App:
12
  def __init__(self) -> None:
13
+ with open("bookmarks.json", "rt", encoding="UTF-8") as fp:
14
+ self.bookmark_info = json.load(fp)
15
+
16
+ with open("Intro.md", "rt", encoding="UTF-8") as fp:
17
+ intro = fp.read()
18
+
19
+ theme = gr.themes.Soft()
20
+ with gr.Blocks(title="Yuyu Tei Crawler", theme=theme) as self.demo:
21
+ gr.Markdown(intro)
22
+ with gr.Row(equal_height=False):
23
+ self.__CreateColumns__()
24
+ self.__RegisterEvents__()
25
+
26
+ def __CreateColumns__(self):
27
+ with gr.Column():
28
+ ph = "e.g. https://yuyu-tei.jp/game_ws/sell/sell_price.php?ver=uma&menu=newest"
29
+ self.input_url = gr.Textbox(label="URL", placeholder=ph)
30
+ self.submit_btn = gr.Button("Submit")
31
+ self.__CreateBookmarks__()
32
+
33
+ with gr.Column():
34
+ self.output_file = gr.File(label="Result", file_count="single")
35
+ self.status = gr.Textbox("Ready", label="Status", interactive=False)
36
+
37
+ def __CreateBookmarks__(self):
38
+ with gr.Tab("Bookmarks"):
39
  with gr.Row():
40
+ self.bookmarks = {name: gr.Button(value=name) for name in self.bookmark_info}
41
+
42
+ def __RegisterEvents__(self):
43
+ args_submit = KwargsToDict(
44
+ fn=self.Download,
45
+ inputs=self.input_url,
46
+ outputs=[self.output_file, self.status],
47
+ )
48
+
49
+ self.submit_btn.click(**args_submit)
50
+ self.input_url.submit(**args_submit)
51
+
52
+ def GetArgsBookmark(name):
53
+ return KwargsToDict(
54
+ fn=self.ClickBookmark,
55
+ inputs=self.bookmarks[name],
56
+ outputs=self.input_url,
57
+ show_progress=False,
58
  )
59
 
60
+ for name in self.bookmarks:
61
+ args_bookmark = GetArgsBookmark(name)
62
+ self.bookmarks[name].click(**args_bookmark)
63
+
64
+ def ClickBookmark(self, name):
65
+ return self.bookmark_info[name]
66
+
67
  def Download(self, url):
68
  try:
69
  ts = datetime.datetime.utcnow() + datetime.timedelta(hours=8)
 
74
  return None, f"Error: {e}"
75
 
76
  def Launch(self):
77
+ self.demo.launch(favicon_path="icon.png")
78
 
79
 
80
  def CrawlPage(url, output_path):
 
133
  return card_name.text.strip()
134
 
135
 
136
+ def KwargsToDict(**kwargs):
137
+ return kwargs
138
+
139
+
140
  if __name__ == "__main__":
141
  App().Launch()
bookmarks.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "UMA": "https://yuyu-tei.jp/game_ws/sell/sell_price.php?ver=uma&menu=newest",
3
+ "LRC": "https://yuyu-tei.jp/game_ws/sell/sell_price.php?ver=lrc&menu=newest"
4
+ }
icon.png ADDED