File: TutoTabPane.py

package info (click to toggle)
python-renardo 0.9.12-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 216 kB
  • sloc: python: 537; makefile: 7
file content (34 lines) | stat: -rw-r--r-- 1,221 bytes parent folder | download
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
from textual.app import ComposeResult
from textual.widgets import TabPane, MarkdownViewer
from renardo.SCFilesHandling import SC_USER_CONFIG_DIR
import requests

def download_file(url, filepath):
    response = requests.get(url)
    if response.status_code == 200:
        with open(filepath, 'wb') as f:
            f.write(response.content)
        print(f"File downloaded successfully as '{filepath}'")
    else:
        print(f"Failed to download file. Status code: {response.status_code}")


TUTO_MD_URL = "https://raw.githubusercontent.com/e-lie/renardo-website/master/docs/intro_tuto.md"


class TutoTabPane(TabPane):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.markdown_string = ""
        file_path = SC_USER_CONFIG_DIR / 'in_app_tutorials.md'
        try:
            if not (file_path).exists():
                download_file(TUTO_MD_URL, file_path)
            with open(file_path, mode="r") as file:
                self.markdown_string = file.read()
        except:
            self.markdown_string = "Tutorials download failed ! retrying at next renardo launch"

    def compose(self) -> ComposeResult:
        yield MarkdownViewer(self.markdown_string)