first commit
This commit is contained in:
1
.vscode/settings.json
vendored
Normal file
1
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
5
f/app_custom/folder.meta.yaml
Normal file
5
f/app_custom/folder.meta.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
summary: null
|
||||||
|
display_name: App Custom Components
|
||||||
|
extra_perms:
|
||||||
|
g/all: false
|
||||||
|
owners: []
|
||||||
5
f/app_groups/folder.meta.yaml
Normal file
5
f/app_groups/folder.meta.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
summary: null
|
||||||
|
display_name: App Groups
|
||||||
|
extra_perms:
|
||||||
|
g/all: false
|
||||||
|
owners: []
|
||||||
5
f/app_themes/folder.meta.yaml
Normal file
5
f/app_themes/folder.meta.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
summary: null
|
||||||
|
display_name: App Themes
|
||||||
|
extra_perms:
|
||||||
|
g/all: false
|
||||||
|
owners: []
|
||||||
5
f/app_themes/theme_0.resource.yaml
Normal file
5
f/app_themes/theme_0.resource.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
description: The default app theme
|
||||||
|
value:
|
||||||
|
name: Default Theme
|
||||||
|
value: ''
|
||||||
|
resource_type: app_theme
|
||||||
15
u/joshuakrzemien/db_test.py
Normal file
15
u/joshuakrzemien/db_test.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import os
|
||||||
|
import wmill
|
||||||
|
from sqlalchemy import create_engine
|
||||||
|
import psycopg2
|
||||||
|
|
||||||
|
# You can import any PyPi package.
|
||||||
|
# See here for more info: https://www.windmill.dev/docs/advanced/dependencies_in_python
|
||||||
|
|
||||||
|
# you can use typed resources by doing a type alias to dict
|
||||||
|
#postgresql = dict
|
||||||
|
|
||||||
|
def main():
|
||||||
|
db = wmill.client.get_resource('u/joshuakrzemien/slick_postgresql')
|
||||||
|
engine = create_engine(f"postgresql+psycopg2://postgres:{db['password']}@192.168.1.41:5431/windmill_test_db")
|
||||||
|
engine.connect()
|
||||||
13
u/joshuakrzemien/db_test.script.lock
Normal file
13
u/joshuakrzemien/db_test.script.lock
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# py: 3.11
|
||||||
|
anyio==4.10.0
|
||||||
|
certifi==2025.8.3
|
||||||
|
greenlet==3.2.4
|
||||||
|
h11==0.16.0
|
||||||
|
httpcore==1.0.9
|
||||||
|
httpx==0.28.1
|
||||||
|
idna==3.10
|
||||||
|
psycopg2-binary==2.9.10
|
||||||
|
sniffio==1.3.1
|
||||||
|
sqlalchemy==2.0.43
|
||||||
|
typing-extensions==4.15.0
|
||||||
|
wmill==1.536.0
|
||||||
9
u/joshuakrzemien/db_test.script.yaml
Normal file
9
u/joshuakrzemien/db_test.script.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
summary: db test
|
||||||
|
description: ''
|
||||||
|
lock: '!inline u/joshuakrzemien/db_test.script.lock'
|
||||||
|
kind: script
|
||||||
|
schema:
|
||||||
|
$schema: 'https://json-schema.org/draft/2020-12/schema'
|
||||||
|
type: object
|
||||||
|
properties: {}
|
||||||
|
required: []
|
||||||
33
u/joshuakrzemien/mtg_json_download.py
Normal file
33
u/joshuakrzemien/mtg_json_download.py
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import os
|
||||||
|
import wmill
|
||||||
|
import requests
|
||||||
|
|
||||||
|
# You can import any PyPi package.
|
||||||
|
# See here for more info: https://www.windmill.dev/docs/advanced/dependencies_in_python
|
||||||
|
|
||||||
|
# you can use typed resources by doing a type alias to dict
|
||||||
|
#postgresql = dict
|
||||||
|
|
||||||
|
def main():
|
||||||
|
url = "https://mtgjson.com/api/v5/TcgplayerSkus.json.zip"
|
||||||
|
files = {
|
||||||
|
"skus": "https://mtgjson.com/api/v5/TcgplayerSkus.json.zip",
|
||||||
|
"identifiers": "https://mtgjson.com/api/v5/AllIdentifiers.json.zip"
|
||||||
|
}
|
||||||
|
success = {}
|
||||||
|
for file_type, url in files.items():
|
||||||
|
response = requests.get(url)
|
||||||
|
response.raise_for_status()
|
||||||
|
file_name = url.split("/")[-1]
|
||||||
|
content_type = response.headers.get("Content-Type")
|
||||||
|
if content_type == 'application/zip':
|
||||||
|
# save file
|
||||||
|
path = f"./shared/{file_name}"
|
||||||
|
with open(path, 'wb') as f:
|
||||||
|
f.write(response.content)
|
||||||
|
success[file_name] = True
|
||||||
|
else:
|
||||||
|
success[file_name] = False
|
||||||
|
return success
|
||||||
|
# success {"TcgplayerSkus.json.zip": True, "AllIdentifiers.json.zip": True}
|
||||||
|
|
||||||
13
u/joshuakrzemien/mtg_json_download.script.lock
Normal file
13
u/joshuakrzemien/mtg_json_download.script.lock
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# py: 3.11
|
||||||
|
anyio==4.10.0
|
||||||
|
certifi==2025.8.3
|
||||||
|
charset-normalizer==3.4.3
|
||||||
|
h11==0.16.0
|
||||||
|
httpcore==1.0.9
|
||||||
|
httpx==0.28.1
|
||||||
|
idna==3.10
|
||||||
|
requests==2.32.5
|
||||||
|
sniffio==1.3.1
|
||||||
|
typing-extensions==4.15.0
|
||||||
|
urllib3==2.5.0
|
||||||
|
wmill==1.536.0
|
||||||
10
u/joshuakrzemien/mtg_json_download.script.yaml
Normal file
10
u/joshuakrzemien/mtg_json_download.script.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
summary: MTG JSON Download
|
||||||
|
description: Retrieves SKU files from the MTGJSON API
|
||||||
|
lock: '!inline u/joshuakrzemien/mtg_json_download.script.lock'
|
||||||
|
concurrency_time_window_s: 0
|
||||||
|
kind: script
|
||||||
|
schema:
|
||||||
|
$schema: 'https://json-schema.org/draft/2020-12/schema'
|
||||||
|
type: object
|
||||||
|
properties: {}
|
||||||
|
required: []
|
||||||
26
u/joshuakrzemien/mtgjson_flow.flow/flow.yaml
Normal file
26
u/joshuakrzemien/mtgjson_flow.flow/flow.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
summary: MTGJSON Skus ETL
|
||||||
|
description: ''
|
||||||
|
value:
|
||||||
|
modules:
|
||||||
|
- id: a
|
||||||
|
value:
|
||||||
|
type: script
|
||||||
|
input_transforms: {}
|
||||||
|
is_trigger: false
|
||||||
|
path: u/joshuakrzemien/mtg_json_download
|
||||||
|
- id: b
|
||||||
|
value:
|
||||||
|
type: script
|
||||||
|
input_transforms:
|
||||||
|
download_success:
|
||||||
|
type: javascript
|
||||||
|
expr: results.a
|
||||||
|
is_trigger: false
|
||||||
|
path: u/joshuakrzemien/mtgjson_unzip
|
||||||
|
same_worker: true
|
||||||
|
schema:
|
||||||
|
$schema: 'https://json-schema.org/draft/2020-12/schema'
|
||||||
|
type: object
|
||||||
|
order: []
|
||||||
|
properties: {}
|
||||||
|
required: []
|
||||||
22
u/joshuakrzemien/mtgjson_unzip.py
Normal file
22
u/joshuakrzemien/mtgjson_unzip.py
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
import os
|
||||||
|
import wmill
|
||||||
|
from zipfile import ZipFile
|
||||||
|
|
||||||
|
# You can import any PyPi package.
|
||||||
|
# See here for more info: https://www.windmill.dev/docs/advanced/dependencies_in_python
|
||||||
|
|
||||||
|
# you can use typed resources by doing a type alias to dict
|
||||||
|
#postgresql = dict
|
||||||
|
|
||||||
|
def main(download_success):
|
||||||
|
unzip_success = {}
|
||||||
|
for zip_name, success in download_success.items():
|
||||||
|
if success:
|
||||||
|
file_name = zip_name.replace('.zip', '')
|
||||||
|
file_path = f'./shared/{file_name}'
|
||||||
|
zip_path = f'./shared/{zip_name}'
|
||||||
|
with ZipFile(zip_path, 'r') as zip_ref:
|
||||||
|
zip_ref.extractall(file_path)
|
||||||
|
unzip_success[file_name] = True
|
||||||
|
|
||||||
|
return unzip_success
|
||||||
10
u/joshuakrzemien/mtgjson_unzip.script.lock
Normal file
10
u/joshuakrzemien/mtgjson_unzip.script.lock
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# py: 3.11
|
||||||
|
anyio==4.10.0
|
||||||
|
certifi==2025.8.3
|
||||||
|
h11==0.16.0
|
||||||
|
httpcore==1.0.9
|
||||||
|
httpx==0.28.1
|
||||||
|
idna==3.10
|
||||||
|
sniffio==1.3.1
|
||||||
|
typing-extensions==4.15.0
|
||||||
|
wmill==1.536.0
|
||||||
14
u/joshuakrzemien/mtgjson_unzip.script.yaml
Normal file
14
u/joshuakrzemien/mtgjson_unzip.script.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
summary: MTGJSON Unzip
|
||||||
|
description: ''
|
||||||
|
lock: '!inline u/joshuakrzemien/mtgjson_unzip.script.lock'
|
||||||
|
kind: script
|
||||||
|
schema:
|
||||||
|
$schema: 'https://json-schema.org/draft/2020-12/schema'
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
download_success:
|
||||||
|
type: object
|
||||||
|
description: ''
|
||||||
|
default: null
|
||||||
|
required:
|
||||||
|
- download_success
|
||||||
10
u/joshuakrzemien/slick_postgresql.resource.yaml
Normal file
10
u/joshuakrzemien/slick_postgresql.resource.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
description: ''
|
||||||
|
value:
|
||||||
|
dbname: windmill_test_db
|
||||||
|
host: 192.168.1.41
|
||||||
|
password: '$var:u/joshuakrzemien/slick_postgresql'
|
||||||
|
port: 5431
|
||||||
|
root_certificate_pem: ''
|
||||||
|
sslmode: disable
|
||||||
|
user: postgres
|
||||||
|
resource_type: postgresql
|
||||||
3
u/joshuakrzemien/slick_postgresql.variable.yaml
Normal file
3
u/joshuakrzemien/slick_postgresql.variable.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
description: Token for postgresql
|
||||||
|
value: Y0FQBPsybfQXhDU7VOYO2g==
|
||||||
|
is_secret: true
|
||||||
5
wmill-lock.yaml
Normal file
5
wmill-lock.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
version: v2
|
||||||
|
locks:
|
||||||
|
u/joshuakrzemien/db_test+972c08a79a04b0017b517504a61b5d5069e82b199171e0569f281508306d8c46: 972c08a79a04b0017b517504a61b5d5069e82b199171e0569f281508306d8c46
|
||||||
|
u/joshuakrzemien/mtg_json_download+f31539309b4d4b4ef529e47352f676f64e58e2a1b2797c2a630acab8a7c40260: f31539309b4d4b4ef529e47352f676f64e58e2a1b2797c2a630acab8a7c40260
|
||||||
|
u/joshuakrzemien/mtgjson_unzip+0bdcf659018721653979c2de3bfd9ce2f70cf0e76ef6993226ee76e9d6c73dc4: 0bdcf659018721653979c2de3bfd9ce2f70cf0e76ef6993226ee76e9d6c73dc4
|
||||||
Reference in New Issue
Block a user