Edoruin commited on
Commit
f90e3ea
·
verified ·
1 Parent(s): 13cf1c3

Update app/main.py

Browse files
Files changed (1) hide show
  1. app/main.py +23 -1
app/main.py CHANGED
@@ -10,6 +10,7 @@ def main(page: ft.Page):
10
  page.theme_mode = ft.ThemeMode.DARK
11
  page.padding = 10
12
 
 
13
  TG_TOKEN = os.getenv("TELEGRAM_TOKEN")
14
  TG_CHAT_ID = os.getenv("TELEGRAM_CHAT_ID")
15
  GITLAB_URL = "https://gitlab.com"
@@ -53,6 +54,8 @@ def main(page: ft.Page):
53
 
54
  def route_change(route):
55
  page.views.clear()
 
 
56
  if page.route == "/":
57
  page.views.append(
58
  ft.View("/", [
@@ -64,6 +67,8 @@ def main(page: ft.Page):
64
  ], spacing=20, horizontal_alignment=ft.CrossAxisAlignment.CENTER)
65
  ])
66
  )
 
 
67
  elif page.route == "/prestamos":
68
  ahora_rd = (datetime.datetime.utcnow() - datetime.timedelta(hours=4)).strftime('%H:%M')
69
  nombre = ft.TextField(label="Alumno", expand=True)
@@ -110,6 +115,8 @@ def main(page: ft.Page):
110
  ], scroll=ft.ScrollMode.ADAPTIVE, expand=True, spacing=10)
111
  ])
112
  )
 
 
113
  elif page.route == "/repos":
114
  repo_list = ft.ListView(expand=True, spacing=10)
115
  page.views.append(ft.View("/repos", [ft.AppBar(title=ft.Text("Proyectos")), repo_list, ft.TextButton("Volver", on_click=lambda _: page.go("/"))]))
@@ -119,6 +126,8 @@ def main(page: ft.Page):
119
  repo_list.controls.append(ft.ListTile(title=ft.Text(p.name), on_click=lambda _, pid=p.id, pname=p.name: page.go(f"/ver/{pid}/{pname}")))
120
  page.update()
121
  except: pass
 
 
122
  elif page.route.startswith("/ver/"):
123
  parts = page.route.split("/")
124
  pid, pname = parts[2], parts[3]
@@ -127,12 +136,25 @@ def main(page: ft.Page):
127
  try:
128
  gl = gitlab.Gitlab(GITLAB_URL, private_token=GIT_TOKEN)
129
  project = gl.projects.get(pid)
 
 
 
 
 
 
 
 
 
 
 
 
130
  c_area.controls.append(ft.Row([
131
  ft.ElevatedButton("ZIP", icon=ft.Icons.DOWNLOAD, on_click=lambda _: page.launch_url(f"{GITLAB_URL}/api/v4/projects/{pid}/repository/archive.zip?private_token={GIT_TOKEN}")),
132
  ft.OutlinedButton("WEB", icon=ft.Icons.OPEN_IN_NEW, on_click=lambda _: page.launch_url(project.web_url))
133
  ], alignment=ft.MainAxisAlignment.CENTER))
134
  page.update()
135
  except: pass
 
136
  page.update()
137
 
138
  page.on_route_change = route_change
@@ -140,4 +162,4 @@ def main(page: ft.Page):
140
 
141
  if __name__ == "__main__":
142
  port = int(os.getenv("PORT", 7860))
143
- ft.app(target=main, view=ft.AppView.WEB_BROWSER, host="0.0.0.0", port=port)
 
10
  page.theme_mode = ft.ThemeMode.DARK
11
  page.padding = 10
12
 
13
+ # --- CONFIGURACIÓN DE VARIABLES ---
14
  TG_TOKEN = os.getenv("TELEGRAM_TOKEN")
15
  TG_CHAT_ID = os.getenv("TELEGRAM_CHAT_ID")
16
  GITLAB_URL = "https://gitlab.com"
 
54
 
55
  def route_change(route):
56
  page.views.clear()
57
+
58
+ # --- MENÚ PRINCIPAL ---
59
  if page.route == "/":
60
  page.views.append(
61
  ft.View("/", [
 
67
  ], spacing=20, horizontal_alignment=ft.CrossAxisAlignment.CENTER)
68
  ])
69
  )
70
+
71
+ # --- SECCIÓN PRÉSTAMOS ---
72
  elif page.route == "/prestamos":
73
  ahora_rd = (datetime.datetime.utcnow() - datetime.timedelta(hours=4)).strftime('%H:%M')
74
  nombre = ft.TextField(label="Alumno", expand=True)
 
115
  ], scroll=ft.ScrollMode.ADAPTIVE, expand=True, spacing=10)
116
  ])
117
  )
118
+
119
+ # --- SECCIÓN LISTA REPOS ---
120
  elif page.route == "/repos":
121
  repo_list = ft.ListView(expand=True, spacing=10)
122
  page.views.append(ft.View("/repos", [ft.AppBar(title=ft.Text("Proyectos")), repo_list, ft.TextButton("Volver", on_click=lambda _: page.go("/"))]))
 
126
  repo_list.controls.append(ft.ListTile(title=ft.Text(p.name), on_click=lambda _, pid=p.id, pname=p.name: page.go(f"/ver/{pid}/{pname}")))
127
  page.update()
128
  except: pass
129
+
130
+ # --- VISTA DETALLE REPO (CON README) ---
131
  elif page.route.startswith("/ver/"):
132
  parts = page.route.split("/")
133
  pid, pname = parts[2], parts[3]
 
136
  try:
137
  gl = gitlab.Gitlab(GITLAB_URL, private_token=GIT_TOKEN)
138
  project = gl.projects.get(pid)
139
+
140
+ # Intentar cargar README
141
+ readme_text = "README.md no encontrado en main/master."
142
+ for branch in ["main", "master"]:
143
+ try:
144
+ f = project.files.get(file_path='README.md', ref=branch)
145
+ readme_text = base64.b64decode(f.content).decode("utf-8")
146
+ break
147
+ except: continue
148
+
149
+ c_area.controls.append(ft.Markdown(readme_text, selectable=True, extension_set=ft.MarkdownExtensionSet.GITHUB_WEB))
150
+ c_area.controls.append(ft.Divider())
151
  c_area.controls.append(ft.Row([
152
  ft.ElevatedButton("ZIP", icon=ft.Icons.DOWNLOAD, on_click=lambda _: page.launch_url(f"{GITLAB_URL}/api/v4/projects/{pid}/repository/archive.zip?private_token={GIT_TOKEN}")),
153
  ft.OutlinedButton("WEB", icon=ft.Icons.OPEN_IN_NEW, on_click=lambda _: page.launch_url(project.web_url))
154
  ], alignment=ft.MainAxisAlignment.CENTER))
155
  page.update()
156
  except: pass
157
+
158
  page.update()
159
 
160
  page.on_route_change = route_change
 
162
 
163
  if __name__ == "__main__":
164
  port = int(os.getenv("PORT", 7860))
165
+ ft.app(target=main, view=ft.AppView.WEB_BROWSER, host="0.0.0.0", port=port)