generated from theripper93/FoundryVTT-Module-Template
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d6a5f8e
commit 3a79479
Showing
5 changed files
with
432 additions
and
297 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
import os | ||
import json | ||
import zipfile | ||
|
||
# Define selected folders | ||
selected_folders = ['scripts', 'styles', 'assets', 'templates', 'languages', 'packs', 'storage'] | ||
|
||
def read_module_json(): | ||
with open(file, 'r', encoding='utf-8') as file: | ||
data = json.load(file) | ||
module_id = data['id'] | ||
module_version = data['version'] | ||
return module_id, module_version | ||
|
||
def create_dist_folder(): | ||
if not os.path.exists('dist'): | ||
os.makedirs('dist') | ||
|
||
def add_folder_to_zip(zip_file, folder): | ||
if os.path.exists(folder): | ||
for root, dirs, files in os.walk(folder): | ||
for file in files: | ||
file_path = os.path.join(root, file) | ||
relative_path = os.path.relpath(file_path, folder) | ||
zip_file.write(file_path, os.path.join(folder, relative_path)) | ||
else: | ||
print(f"Warning: {folder} is missing. Skipping.") | ||
|
||
def create_zip(module_id, module_version, folders): | ||
zip_filename = f'dist/{module_id}-{module_version}.zip' | ||
with zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED) as zip_file: | ||
zip_file.write('module.json') | ||
|
||
for folder in folders: | ||
add_folder_to_zip(zip_file, folder) | ||
|
||
print(f"Zip file '{zip_filename}' created successfully.") | ||
|
||
def main(): | ||
module_id, module_version = read_module_json() | ||
create_dist_folder() | ||
|
||
create_zip(module_id, module_version, selected_folders) | ||
|
||
if __name__ == "__main__": | ||
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
import os | ||
import json | ||
import subprocess | ||
import requests | ||
|
||
def get_git_repo_info(): | ||
try: | ||
# Get the remote URL of the Git repository | ||
remote_url = subprocess.check_output(['git', 'config', '--get', 'remote.origin.url']).decode('utf-8').strip() | ||
|
||
# Extract the repository owner and name from the remote URL | ||
repo_owner, repo_name = remote_url.split('/')[-2:] | ||
repo_name = repo_name.rstrip('.git') | ||
|
||
return repo_owner, repo_name | ||
except subprocess.CalledProcessError: | ||
print("Error: Not a Git repository or Git not installed.") | ||
return None, None | ||
|
||
def get_latest_release(repo_owner, repo_name, token): | ||
url = f'https://api.github.com/repos/{repo_owner}/{repo_name}/releases/latest' | ||
headers = {'Authorization': f'Bearer {token}'} | ||
response = requests.get(url, headers=headers) | ||
data = response.json() | ||
return data | ||
|
||
def get_project_title_and_id(): | ||
with open('module.json', 'r', encoding='utf-8') as json_file: | ||
data = json.load(json_file) | ||
title = data.get('title', 'Project Title Not Found') | ||
id = data.get('id', 'Project ID Not Found') | ||
return title, id | ||
|
||
def post_discord_webhook(webhook_url, embed_title, embed_description): | ||
# Create the payload for the webhook | ||
payload = { | ||
'embeds': [ | ||
{ | ||
'title': embed_title, | ||
'description': embed_description, | ||
'color': 0x00ff00 # You can customize the color (hex) of the embed | ||
} | ||
] | ||
} | ||
|
||
# Make an HTTP POST request to the webhook URL | ||
headers = {'Content-Type': 'application/json'} | ||
response = requests.post(webhook_url, data=json.dumps(payload), headers=headers) | ||
|
||
# Check if the request was successful | ||
if response.status_code == 200 or response.status_code == 204: | ||
print("Webhook posted successfully.") | ||
else: | ||
print(f"Failed to post webhook. Status code: {response.status_code}") | ||
|
||
def load_secrets(): | ||
secrets_file_path = os.path.join(os.path.dirname(__file__), '..', 'SECRETS.json') | ||
|
||
try: | ||
with open(secrets_file_path, 'r') as secrets_file: | ||
secrets = json.load(secrets_file) | ||
return secrets | ||
except FileNotFoundError: | ||
print(f"SECRETS.json file not found at: {secrets_file_path}") | ||
return {} | ||
except json.JSONDecodeError: | ||
print(f"Error decoding JSON in SECRETS.json file at: {secrets_file_path}") | ||
return {} | ||
|
||
if __name__ == "__main__": | ||
# Get Git repository information | ||
repo_owner, repo_name = get_git_repo_info() | ||
|
||
if repo_owner and repo_name: | ||
secrets = load_secrets() | ||
|
||
# Get Discord webhook URL and GitHub token from secrets | ||
discord_webhook_url = secrets.get('DISCORD_WEBHOOK_URL') | ||
github_token = secrets.get('GITHUB_TOKEN') | ||
|
||
# Get the latest release information from GitHub | ||
latest_release = get_latest_release(repo_owner, repo_name, github_token) | ||
version = latest_release.get('tag_name', 'Version Not Found') | ||
description = latest_release.get('body', 'No description available for this release.') | ||
|
||
project_title, id = get_project_title_and_id() | ||
package_page_link = f"\n\n**Package Page**\n https://foundryvtt.com/packages/{id}" | ||
|
||
description += package_page_link | ||
|
||
# Get project title and id from module.json file | ||
|
||
|
||
# Post Discord webhook with the embed | ||
post_discord_webhook(discord_webhook_url, f'{project_title} - Version {version}', description) | ||
else: | ||
print("Unable to retrieve Git repository information.") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,53 +1,53 @@ | ||
{ | ||
"title": "Combat Booster: Turn Marker, Recent Actions and more", | ||
"description": "Speed up Combat", | ||
"version": "0.1", | ||
"authors": [ | ||
{ | ||
"name": "theripper93", | ||
"email": "[email protected]", | ||
"url": "https://www.patreon.com/theripper93" | ||
} | ||
], | ||
"languages": [ | ||
{ | ||
"lang": "en", | ||
"name": "English", | ||
"path": "languages/en.json" | ||
}, | ||
{ | ||
"lang": "it", | ||
"name": "Italiano", | ||
"path": "languages/it.json" | ||
}, | ||
{ | ||
"lang": "es", | ||
"name": "Español", | ||
"path": "languages/es.json" | ||
}, | ||
{ | ||
"lang": "ja", | ||
"name": "日本語", | ||
"path": "languages/ja.json" | ||
} | ||
], | ||
"scripts": [ | ||
"scripts/main.js", | ||
"scripts/CombatBooster.js", | ||
"scripts/TurnMarker.js", | ||
"scripts/config.js", | ||
"scripts/CombatHud.js" | ||
], | ||
"styles": [ | ||
"styles/CombatBooster.css" | ||
], | ||
"url": "https://github.com/theripper93/Combat-Booster", | ||
"manifest": "https://github.com/theripper93/Combat-Booster/releases/latest/download/module.json", | ||
"download": "https://github.com/theripper93/Combat-Booster/releases/latest/download/module.zip", | ||
"socket": true, | ||
"id": "combatbooster", | ||
"compatibility": { | ||
"minimum": "11", | ||
"verified": "11" | ||
} | ||
{ | ||
"title": "Combat Booster: Turn Marker, Recent Actions and more", | ||
"description": "Speed up Combat", | ||
"version": "0.1", | ||
"authors": [ | ||
{ | ||
"name": "theripper93", | ||
"email": "[email protected]", | ||
"url": "https://www.patreon.com/theripper93" | ||
} | ||
], | ||
"languages": [ | ||
{ | ||
"lang": "en", | ||
"name": "English", | ||
"path": "languages/en.json" | ||
}, | ||
{ | ||
"lang": "it", | ||
"name": "Italiano", | ||
"path": "languages/it.json" | ||
}, | ||
{ | ||
"lang": "es", | ||
"name": "Español", | ||
"path": "languages/es.json" | ||
}, | ||
{ | ||
"lang": "ja", | ||
"name": "日本語", | ||
"path": "languages/ja.json" | ||
} | ||
], | ||
"scripts": [ | ||
"scripts/main.js", | ||
"scripts/CombatBooster.js", | ||
"scripts/TurnMarker.js", | ||
"scripts/config.js", | ||
"scripts/CombatHud.js" | ||
], | ||
"styles": [ | ||
"styles/CombatBooster.css" | ||
], | ||
"url": "https://github.com/theripper93/Combat-Booster", | ||
"manifest": "https://github.com/theripper93/Combat-Booster/releases/latest/download/module.json", | ||
"download": "https://github.com/theripper93/Combat-Booster/releases/latest/download/module.zip", | ||
"socket": true, | ||
"id": "combatbooster", | ||
"compatibility": { | ||
"minimum": "11", | ||
"verified": "11" | ||
} | ||
} |
Oops, something went wrong.