Sfoglia il codice sorgente

improve handling of external resources

Thomas B 3 mesi fa
parent
commit
6876576976

+ 28
- 7
input/blog/2024/2024_05_05_auto_project_docs.md Vedi File

96
 
96
 
97
 <pre id="generatedocs" class="sh_sh">
97
 <pre id="generatedocs" class="sh_sh">
98
 <!--%
98
 <!--%
99
-include_url("https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/docs/generate_docs.sh")
99
+include_url(
100
+    "https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/docs/generate_docs.sh",
101
+    "https://github.com/xythobuz/lars/raw/314bf218ca5e958d6ffa825d92d702cb5431abf6/docs/generate_docs.sh"
102
+)
100
 %-->
103
 %-->
101
 </pre>
104
 </pre>
102
 
105
 
109
 
112
 
110
 <pre id="docsyml" class="sh_yaml">
113
 <pre id="docsyml" class="sh_yaml">
111
 <!--%
114
 <!--%
112
-include_url("https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/.github/workflows/docs.yml")
115
+include_url(
116
+    "https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/.github/workflows/docs.yml",
117
+    "https://github.com/xythobuz/lars/raw/314bf218ca5e958d6ffa825d92d702cb5431abf6/.github/workflows/docs.yml"
118
+)
113
 %-->
119
 %-->
114
 </pre>
120
 </pre>
115
 
121
 
130
 
136
 
131
 <pre id="generatestls" class="sh_sh">
137
 <pre id="generatestls" class="sh_sh">
132
 <!--%
138
 <!--%
133
-include_url("https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/3dprint/generate_stls.sh")
139
+include_url(
140
+    "https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/3dprint/generate_stls.sh",
141
+    "https://github.com/xythobuz/lars/raw/314bf218ca5e958d6ffa825d92d702cb5431abf6/3dprint/generate_stls.sh"
142
+)
134
 %-->
143
 %-->
135
 </pre>
144
 </pre>
136
 
145
 
139
 
148
 
140
 <pre id="scadyml" class="sh_yaml">
149
 <pre id="scadyml" class="sh_yaml">
141
 <!--%
150
 <!--%
142
-include_url("https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/.github/workflows/scad.yml")
151
+include_url(
152
+    "https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/.github/workflows/scad.yml",
153
+    "https://github.com/xythobuz/lars/raw/314bf218ca5e958d6ffa825d92d702cb5431abf6/.github/workflows/scad.yml"
154
+)
143
 %-->
155
 %-->
144
 </pre>
156
 </pre>
145
 
157
 
158
 
170
 
159
 <pre id="generatefab" class="sh_sh">
171
 <pre id="generatefab" class="sh_sh">
160
 <!--%
172
 <!--%
161
-include_url("https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/pcb2/generate_fab.sh")
173
+include_url(
174
+    "https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/pcb2/generate_fab.sh",
175
+    "https://github.com/xythobuz/lars/raw/314bf218ca5e958d6ffa825d92d702cb5431abf6/pcb2/generate_fab.sh"
176
+)
162
 %-->
177
 %-->
163
 </pre>
178
 </pre>
164
 
179
 
167
 
182
 
168
 <pre id="kicadyml" class="sh_yaml">
183
 <pre id="kicadyml" class="sh_yaml">
169
 <!--%
184
 <!--%
170
-include_url("https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/.github/workflows/kicad.yml")
185
+include_url(
186
+    "https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/.github/workflows/kicad.yml",
187
+    "https://github.com/xythobuz/lars/raw/314bf218ca5e958d6ffa825d92d702cb5431abf6/.github/workflows/kicad.yml"
188
+)
171
 %-->
189
 %-->
172
 </pre>
190
 </pre>
173
 
191
 
180
 
198
 
181
 <pre id="generateplot" class="sh_sh">
199
 <pre id="generateplot" class="sh_sh">
182
 <!--%
200
 <!--%
183
-include_url("https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/pcb2/generate_plot.sh")
201
+include_url(
202
+    "https://git.xythobuz.de/thomas/drumkit/raw/commit/314bf218ca5e958d6ffa825d92d702cb5431abf6/pcb2/generate_plot.sh",
203
+    "https://github.com/xythobuz/lars/raw/314bf218ca5e958d6ffa825d92d702cb5431abf6/pcb2/generate_plot.sh"
204
+)
184
 %-->
205
 %-->
185
 </pre>
206
 </pre>
186
 
207
 

+ 4
- 1
input/projects/auto_brightness.md Vedi File

149
 
149
 
150
 <pre class="sh_javascript">
150
 <pre class="sh_javascript">
151
 <!--%
151
 <!--%
152
-include_url("https://git.xythobuz.de/thomas/AutoBrightness/raw/branch/main/client/kwin_check.js")
152
+include_url(
153
+    "https://git.xythobuz.de/thomas/AutoBrightness/raw/branch/main/client/kwin_check.js",
154
+    "https://github.com/xythobuz/AutoBrightness/raw/refs/heads/main/client/kwin_check.js"
155
+)
153
 %-->
156
 %-->
154
 </pre>
157
 </pre>
155
 
158
 

+ 33
- 27
macros.py Vedi File

510
     sys.stderr.write("\n")
510
     sys.stderr.write("\n")
511
 
511
 
512
 def http_request(url):
512
 def http_request(url):
513
-    sys.stderr.write('sub    : fetching %s\n' % url)
514
-
515
     if PY3:
513
     if PY3:
516
-        try:
517
-            response = urllib.request.urlopen(url, timeout = 10)
518
-        except HTTPError as error:
519
-            print_cnsl_error("HTTPError: '%s'" % error, url)
520
-            return ""
521
-        except URLError as error:
522
-            print_cnsl_error("URLError: '%s'" % error, url)
523
-            return ""
514
+        response = urllib.request.urlopen(url, timeout = 5)
524
     else:
515
     else:
525
-        try:
526
-            response = urllib.urlopen(url)
527
-        except IOError as error:
528
-            print_cnsl_error("HTTPError: '%s'" % error, url)
529
-            return ""
516
+        response = urllib.urlopen(url)
530
 
517
 
531
     if response.getcode() != 200:
518
     if response.getcode() != 200:
532
-        print_cnsl_error("invalid response code: " + str(response.getcode()), url)
533
-        return ""
519
+        raise RuntimeError("invalid response code: " + str(response.getcode()))
520
+
521
+    data = response.read().decode("utf-8")
522
+    return data
523
+
524
+def include_url(url, fallback = None):
525
+    sys.stderr.write('sub    : fetching page "%s"\n' % url)
526
+
527
+    if fallback == None:
528
+        print_cnsl_error("include_url() without fallback option", url)
529
+
530
+    try:
531
+        data = http_request(url)
532
+    except Exception as e:
533
+        if fallback != None:
534
+            sys.stderr.write('sub    : fetching fallback page "%s"\n' % url)
535
+            try:
536
+                data = http_request(fallback)
537
+            except Exception as e:
538
+                print_cnsl_error(str(e), fallback)
539
+                return
540
+        else:
541
+            print_cnsl_error(str(e), url)
542
+            return
543
+
544
+    if PY3:
545
+        encoded = html.escape(data)
534
     else:
546
     else:
535
-        data = response.read().decode("utf-8")
536
-        return data
547
+        encoded = cgi.escape(data)
548
+
549
+    print(encoded, end="")
537
 
550
 
538
 def restRequest(url):
551
 def restRequest(url):
552
+    sys.stderr.write('sub    : fetching REST "%s"\n' % url)
539
     data = json.loads(http_request(url))
553
     data = json.loads(http_request(url))
540
     return data
554
     return data
541
 
555
 
583
         print("<li><a href=\"" + a["browser_download_url"] + "\">" + a["name"] + "</a>" + ss)
597
         print("<li><a href=\"" + a["browser_download_url"] + "\">" + a["name"] + "</a>" + ss)
584
     print("</ul></div>")
598
     print("</ul></div>")
585
 
599
 
586
-def include_url(url):
587
-    data = http_request(url)
588
-    if PY3:
589
-        encoded = html.escape(data)
590
-    else:
591
-        encoded = cgi.escape(data)
592
-    print(encoded, end="")
593
-
594
 # -----------------------------------------------------------------------------
600
 # -----------------------------------------------------------------------------
595
 # preconvert hooks
601
 # preconvert hooks
596
 # -----------------------------------------------------------------------------
602
 # -----------------------------------------------------------------------------

Loading…
Annulla
Salva