Browse Source

Update ModularGrid and scripts.

v1
Andrew Belt 4 years ago
parent
commit
342fd52048
4 changed files with 94 additions and 61 deletions
  1. +21
    -0
      ModularGrid-VCVLibrary.json
  2. +0
    -58
      scripts/generate_mg.py
  3. +9
    -3
      scripts/update.py
  4. +64
    -0
      scripts/update_modulargrid.py

+ 21
- 0
ModularGrid-VCVLibrary.json View File

@@ -1060,5 +1060,26 @@
"vcvUrl": "https://library.vcvrack.com/NANOModules/BLANK2Hp",
"mgUrl": "https://www.modulargrid.net/e/nano-modules-blank-2hp",
"mgModuleId": 25227
},
{
"pluginSlug": "Starling_Via",
"moduleSlug": "ATSR",
"vcvUrl": "https://library.vcvrack.com/Starling_Via/ATSR",
"mgUrl": "https://www.modulargrid.net/e/starling-via-atsr-",
"mgModuleId": 26726
},
{
"pluginSlug": "Starling_Via",
"moduleSlug": "OSC3",
"vcvUrl": "https://library.vcvrack.com/Starling_Via/OSC3",
"mgUrl": "https://www.modulargrid.net/e/starling-via-osc3-",
"mgModuleId": 26727
},
{
"pluginSlug": "Starling_Via",
"moduleSlug": "SYNC3",
"vcvUrl": "https://library.vcvrack.com/Starling_Via/SYNC3",
"mgUrl": "https://www.modulargrid.net/e/starling-via-sync3-",
"mgModuleId": 26728
}
]

+ 0
- 58
scripts/generate_mg.py View File

@@ -1,58 +0,0 @@
import sys
import os
import glob
import json
import re
import requests


# Load existing dataset
mg_filename = "ModularGrid-VCVLibrary.json"
with open(mg_filename) as f:
mg = json.load(f)

# Iterate plugins
for manifest_filename in glob.glob('manifests/*.json'):
with open(manifest_filename) as f:
plugin = json.load(f)
plugin_slug = plugin['slug']

# Iterate modules in plugin
for module in plugin.get('modules', []):
module_slug = module['slug']
mg_url = module.get('modularGridUrl')
if not mg_url:
continue

if [x for x in mg if x.get('mgUrl') == mg_url]:
continue

mg_data = {}
mg_data['pluginSlug'] = plugin_slug
mg_data['moduleSlug'] = module_slug
mg_data['vcvUrl'] = f"https://library.vcvrack.com/{plugin_slug}/{module_slug}"
mg_data['mgUrl'] = mg_url
mg.append(mg_data)
print(mg_data)


# Iterate dataset
for mg_data in mg:
if mg_data.get('mgModuleId'):
continue

# Scrape ModularGrid website for ID
mg_url = mg_data['mgUrl']
r = requests.get(mg_url)
m = re.search(r'data-module-id = "(\d+)"', r.text)
mg_id = m.group(1)
if not mg_id:
print(f"No ModularGrid ID found for {plugin_slug} {module_slug}")
continue
mg_id = int(mg_id)
mg_data['mgModuleId'] = mg_id
print(mg_data)


with open(mg_filename, 'w') as f:
json.dump(mg, f, indent=2)

+ 9
- 3
scripts/update.py View File

@@ -3,10 +3,12 @@ import os
import glob
import json
import time
import build
import zipfile
import re

import build
import update_modulargrid


PACKAGES_DIR = "../packages"
SCREENSHOTS_DIR = "../screenshots"
@@ -79,7 +81,7 @@ for plugin_filename in plugin_filenames:
build.delete_stage()
build.build(plugin_filename)
build.system(f'cp -vi stage/* "{PACKAGES_DIR}"')
build.system(f'cp -vi stage/* "{RACK_USER_PLUGIN_DIR}"')
build.system(f'cp -vi stage/*-lin.zip "{RACK_USER_PLUGIN_DIR}"')
except Exception as e:
print(e)
print(f"{slug} build failed")
@@ -89,7 +91,7 @@ for plugin_filename in plugin_filenames:
build.delete_stage()

# Open plugin issue thread
os.system(f"qutebrowser 'https://github.com/VCVRack/library/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+in%3Atitle+{slug}' &")
os.system(f"xdg-open 'https://github.com/VCVRack/library/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+in%3Atitle+{slug}' &")

elif plugin_ext == ".zip":
# Review manifest for errors
@@ -119,6 +121,10 @@ if not updated_slugs:
print("Nothing to build")
exit(0)

update_modulargrid.update()

# Upload data

built_slugs_str = ", ".join(updated_slugs)

print()


+ 64
- 0
scripts/update_modulargrid.py View File

@@ -0,0 +1,64 @@
import sys
import os
import glob
import json
import re
import requests


def update():
# Load existing dataset
mg_filename = "ModularGrid-VCVLibrary.json"
with open(mg_filename) as f:
mg = json.load(f)

# Iterate plugins
for manifest_filename in glob.glob('manifests/*.json'):
with open(manifest_filename) as f:
plugin = json.load(f)
plugin_slug = plugin['slug']

# Iterate modules in plugin
for module in plugin.get('modules', []):
module_slug = module['slug']
mg_url = module.get('modularGridUrl')
if not mg_url:
continue

if [x for x in mg if x.get('mgUrl') == mg_url]:
continue

mg_data = {}
mg_data['pluginSlug'] = plugin_slug
mg_data['moduleSlug'] = module_slug
mg_data['vcvUrl'] = f"https://library.vcvrack.com/{plugin_slug}/{module_slug}"
mg_data['mgUrl'] = mg_url
mg.append(mg_data)
print(mg_data)

# Iterate dataset
for mg_data in mg:
if mg_data.get('mgModuleId'):
continue

# Scrape ModularGrid website for ID
mg_url = mg_data['mgUrl']
r = requests.get(mg_url)
m = re.search(r'data-module-id = "(\d+)"', r.text)
mg_id = m.group(1)
if not mg_id:
print(f"No ModularGrid ID found for {plugin_slug} {module_slug}")
continue
mg_id = int(mg_id)
mg_data['mgModuleId'] = mg_id
print(mg_data)


with open(mg_filename, 'w') as f:
json.dump(mg, f, indent=2)



if __name__ == "__main__":
update()


Loading…
Cancel
Save