Compare commits

...

2 Commits

Author SHA1 Message Date
Bjorn Lammers
44be40b2e1 refactor(icons): map metadata to new categories 2025-04-29 16:24:59 +02:00
Bjorn Lammers
9a1d26368b refactor(icons): consolidate categories with metadata mapping and category validation 2025-04-29 16:24:29 +02:00
1912 changed files with 23015 additions and 22782 deletions

View File

@@ -35,32 +35,49 @@ body:
label: Categories label: Categories
multiple: true multiple: true
options: options:
- Animal - AI
- Cloud - Analytics-&-Monitoring
- Automation
- Browsers-&-Search
- Cloud-&-Hosting
- Communication - Communication
- Community-&-Social
- Content-Management
- Crypto
- Databases
- Design - Design
- Development - Development
- Downloaders
- E-Commerce - E-Commerce
- Education - Education
- File - File-Management-&-Sync
- Finance - Finance
- Food - Food
- Framework
- Gaming - Gaming
- Hardware - Hardware
- Health - Health
- Location - Home-Automation
- Logistics - Identity
- Infrastructure
- Library
- Mapping-&-Location
- Media - Media
- Music - Music-&-Audio
- Nature - Nature
- Networking
- News - News
- Organization - Notes-&-Productivity
- Search - Operating-Systems
- Organization-&-Planning
- Programming-Language
- Security - Security
- SocialMedia - Software
- Streaming - Streaming
- Travel - Travel
- Version-Control
- Video - Video
- Virtualization
- type: input - type: input
attributes: attributes:
label: Aliases label: Aliases

View File

@@ -33,32 +33,49 @@ body:
label: Categories label: Categories
multiple: true multiple: true
options: options:
- Animal - AI
- Cloud - Analytics-&-Monitoring
- Automation
- Browsers-&-Search
- Cloud-&-Hosting
- Communication - Communication
- Community-&-Social
- Content-Management
- Crypto
- Databases
- Design - Design
- Development - Development
- Downloaders
- E-Commerce - E-Commerce
- Education - Education
- File - File-Management-&-Sync
- Finance - Finance
- Food - Food
- Framework
- Gaming - Gaming
- Hardware - Hardware
- Health - Health
- Location - Home-Automation
- Logistics - Identity
- Infrastructure
- Library
- Mapping-&-Location
- Media - Media
- Music - Music-&-Audio
- Nature - Nature
- Networking
- News - News
- Organization - Notes-&-Productivity
- Search - Operating-Systems
- Organization-&-Planning
- Programming-Language
- Security - Security
- SocialMedia - Software
- Streaming - Streaming
- Travel - Travel
- Version-Control
- Video - Video
- Virtualization
- type: input - type: input
attributes: attributes:
label: Aliases label: Aliases

View File

@@ -29,6 +29,54 @@ body:
options: options:
- SVG - SVG
- PNG - PNG
- type: dropdown
attributes:
label: Categories
multiple: true
options:
- AI
- Analytics-&-Monitoring
- Automation
- Browsers-&-Search
- Cloud-&-Hosting
- Communication
- Community-&-Social
- Content-Management
- Crypto
- Databases
- Design
- Development
- Downloaders
- E-Commerce
- Education
- File-Management-&-Sync
- Finance
- Food
- Framework
- Gaming
- Hardware
- Health
- Home-Automation
- Identity
- Infrastructure
- Library
- Mapping-&-Location
- Media
- Music-&-Audio
- Nature
- Networking
- News
- Notes-&-Productivity
- Operating-Systems
- Organization-&-Planning
- Programming-Language
- Security
- Software
- Streaming
- Travel
- Version-Control
- Video
- Virtualization
- type: textarea - type: textarea
attributes: attributes:
label: Additional information label: Additional information

View File

@@ -24,6 +24,54 @@ body:
options: options:
- SVG - SVG
- PNG - PNG
- type: dropdown
attributes:
label: Categories
multiple: true
options:
- AI
- Analytics-&-Monitoring
- Automation
- Browsers-&-Search
- Cloud-&-Hosting
- Communication
- Community-&-Social
- Content-Management
- Crypto
- Databases
- Design
- Development
- Downloaders
- E-Commerce
- Education
- File-Management-&-Sync
- Finance
- Food
- Framework
- Gaming
- Hardware
- Health
- Home-Automation
- Identity
- Infrastructure
- Library
- Mapping-&-Location
- Media
- Music-&-Audio
- Nature
- Networking
- News
- Notes-&-Productivity
- Operating-Systems
- Organization-&-Planning
- Programming-Language
- Security
- Software
- Streaming
- Travel
- Version-Control
- Video
- Virtualization
- type: textarea - type: textarea
attributes: attributes:
label: Additional information label: Additional information

View File

@@ -37,6 +37,58 @@ jobs:
run: echo "ISSUE_FORM=$(python scripts/parse_issue_form.py)" >> "$GITHUB_OUTPUT" run: echo "ISSUE_FORM=$(python scripts/parse_issue_form.py)" >> "$GITHUB_OUTPUT"
env: env:
INPUT_ISSUE_BODY: ${{ github.event.issue.body }} INPUT_ISSUE_BODY: ${{ github.event.issue.body }}
- name: Validate Categories
run: |
import json
import sys
import os
# Load allowed categories from metadata.map.json
map_file = "metadata.map.json"
try:
with open(map_file, 'r', encoding='utf-8') as f:
map_data = json.load(f)
# Assuming the first key in the map holds the example structure
example_key = list(map_data.keys())[0]
allowed_categories = set(map_data[example_key]['categories'])
print(f"Loaded {len(allowed_categories)} allowed categories from {map_file}")
except Exception as e:
print(f"::error file={map_file}::Failed to load or parse allowed categories from {map_file}: {e}")
sys.exit(1)
# Load submitted form data
form_json_string = os.environ.get('INPUT_ISSUE_FORM')
if not form_json_string:
print("::error::Failed to get form JSON from environment variable.")
sys.exit(1)
try:
form_data = json.loads(form_json_string)
except json.JSONDecodeError as e:
print(f"::error::Failed to parse form JSON: {e}")
print(f"Form JSON string was: {form_json_string}")
sys.exit(1)
# Extract submitted categories (handle potential missing key or None value)
submitted_categories_str = form_data.get('Categories') # Label from issue form
submitted_categories = set()
if submitted_categories_str:
submitted_categories = set(cat.strip() for cat in submitted_categories_str.split('\\n') if cat.strip())
print(f"Submitted categories: {submitted_categories or 'None'}")
# Validate
invalid_categories = submitted_categories - allowed_categories
if invalid_categories:
print(f"::error::Invalid categories found: {', '.join(sorted(list(invalid_categories)))}")
print("Please ensure all submitted categories exist in metadata.map.json.")
sys.exit(1)
else:
print("All submitted categories are valid.")
env:
INPUT_ISSUE_FORM: ${{ steps.parse_issue_form.outputs.ISSUE_FORM }}
- name: Create metadata file - name: Create metadata file
run: python scripts/generate_metadata_file.py ${{ env.ICON_TYPE }} addition run: python scripts/generate_metadata_file.py ${{ env.ICON_TYPE }} addition
env: env:

View File

@@ -37,6 +37,62 @@ jobs:
run: echo "ISSUE_FORM=$(python scripts/parse_issue_form.py)" >> "$GITHUB_OUTPUT" run: echo "ISSUE_FORM=$(python scripts/parse_issue_form.py)" >> "$GITHUB_OUTPUT"
env: env:
INPUT_ISSUE_BODY: ${{ github.event.issue.body }} INPUT_ISSUE_BODY: ${{ github.event.issue.body }}
- name: Validate Categories
run: |
import json
import sys
import os
# Load allowed categories from metadata.map.json
map_file = "metadata.map.json"
try:
with open(map_file, 'r', encoding='utf-8') as f:
map_data = json.load(f)
# Assuming the first key in the map holds the example structure
example_key = list(map_data.keys())[0]
allowed_categories = set(map_data[example_key]['categories'])
print(f"Loaded {len(allowed_categories)} allowed categories from {map_file}")
except Exception as e:
print(f"::error file={map_file}::Failed to load or parse allowed categories from {map_file}: {e}")
sys.exit(1)
# Load submitted form data
form_json_string = os.environ.get('INPUT_ISSUE_FORM')
if not form_json_string:
print("::error::Failed to get form JSON from environment variable.")
sys.exit(1)
try:
form_data = json.loads(form_json_string)
except json.JSONDecodeError as e:
print(f"::error::Failed to parse form JSON: {e}")
print(f"Form JSON string was: {form_json_string}")
sys.exit(1)
# Extract submitted categories (handle potential missing key or None value)
# NOTE: The update forms might not have a 'Categories' field if categories aren't updatable via that form.
# If 'Categories' is missing or None in the form data, validation passes trivially.
submitted_categories_str = form_data.get('Categories') # Label from issue form
submitted_categories = set()
if submitted_categories_str:
submitted_categories = set(cat.strip() for cat in submitted_categories_str.split('\\n') if cat.strip())
if not submitted_categories_str:
print("No categories submitted in this form, skipping validation.")
else:
print(f"Submitted categories: {submitted_categories}")
# Validate
invalid_categories = submitted_categories - allowed_categories
if invalid_categories:
print(f"::error::Invalid categories found: {', '.join(sorted(list(invalid_categories)))}")
print("Please ensure all submitted categories exist in metadata.map.json.")
sys.exit(1)
else:
print("All submitted categories are valid.")
env:
INPUT_ISSUE_FORM: ${{ steps.parse_issue_form.outputs.ISSUE_FORM }}
- name: Update metadata file - name: Update metadata file
run: python scripts/generate_metadata_file.py ${{ env.ICON_TYPE }} update run: python scripts/generate_metadata_file.py ${{ env.ICON_TYPE }} update
env: env:

View File

@@ -5,7 +5,7 @@
"article-unblocker" "article-unblocker"
], ],
"categories": [ "categories": [
"Web-Browsers" "Browsers-&-Search"
], ],
"update": { "update": {
"timestamp": "2024-10-13T18:25:47Z", "timestamp": "2024-10-13T18:25:47Z",

View File

@@ -4,7 +4,7 @@
"2FA Authenticator" "2FA Authenticator"
], ],
"categories": [ "categories": [
"Password-Managers", "Identity",
"Security" "Security"
], ],
"update": { "update": {

View File

@@ -4,7 +4,7 @@
"7-zip" "7-zip"
], ],
"categories": [ "categories": [
"Developer-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2025-01-05T00:02:27Z", "timestamp": "2025-01-05T00:02:27Z",

View File

@@ -5,7 +5,7 @@
], ],
"categories": [ "categories": [
"Databases", "Databases",
"Developer-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2022-08-16T17:22:56Z", "timestamp": "2022-08-16T17:22:56Z",

View File

@@ -2,7 +2,7 @@
"base": "png", "base": "png",
"aliases": [], "aliases": [],
"categories": [ "categories": [
"Monitoring-Tools" "Analytics-&-Monitoring"
], ],
"update": { "update": {
"timestamp": "2024-10-20T19:32:46Z", "timestamp": "2024-10-20T19:32:46Z",

View File

@@ -5,8 +5,8 @@
"app-builder" "app-builder"
], ],
"categories": [ "categories": [
"Developer-Tools", "Cloud-&-Hosting",
"Cloud-Computing" "Development"
], ],
"update": { "update": {
"timestamp": "2024-06-01T17:32:11Z", "timestamp": "2024-06-01T17:32:11Z",

View File

@@ -4,7 +4,7 @@
"Download Manager" "Download Manager"
], ],
"categories": [ "categories": [
"Download-Managers" "Downloaders"
], ],
"update": { "update": {
"timestamp": "2024-10-20T19:32:46Z", "timestamp": "2024-10-20T19:32:46Z",

View File

@@ -5,7 +5,7 @@
"amazon-video" "amazon-video"
], ],
"categories": [ "categories": [
"Video-Streaming" "Streaming"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -6,7 +6,7 @@
], ],
"categories": [ "categories": [
"Hardware", "Hardware",
"Organization" "Organization-&-Planning"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -4,8 +4,8 @@
"Asterisk Manager" "Asterisk Manager"
], ],
"categories": [ "categories": [
"Networking-Tools", "Communication",
"Communication" "Networking"
], ],
"update": { "update": {
"timestamp": "2024-10-20T19:32:46Z", "timestamp": "2024-10-20T19:32:46Z",

View File

@@ -5,8 +5,7 @@
"audio-streaming" "audio-streaming"
], ],
"categories": [ "categories": [
"Media-Servers", "Streaming"
"Music-Streaming"
], ],
"update": { "update": {
"timestamp": "2024-10-20T19:32:46Z", "timestamp": "2024-10-20T19:32:46Z",

View File

@@ -2,7 +2,7 @@
"base": "svg", "base": "svg",
"aliases": [], "aliases": [],
"categories": [ "categories": [
"Smart-Home" "Home-Automation"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,8 +4,8 @@
"Automation Tool" "Automation Tool"
], ],
"categories": [ "categories": [
"Developer-Tools", "DevOps",
"DevOps" "Development"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,8 +4,7 @@
"Home Automation" "Home Automation"
], ],
"categories": [ "categories": [
"Home-Automation", "Home-Automation"
"Smart-Home"
], ],
"update": { "update": {
"timestamp": "2024-10-20T19:32:46Z", "timestamp": "2024-10-20T19:32:46Z",

View File

@@ -5,7 +5,7 @@
"apple-music-service" "apple-music-service"
], ],
"categories": [ "categories": [
"Music-Streaming" "Streaming"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -5,7 +5,7 @@
"streaming-service" "streaming-service"
], ],
"categories": [ "categories": [
"Video-Streaming" "Streaming"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -5,7 +5,7 @@
"site-scraper" "site-scraper"
], ],
"categories": [ "categories": [
"Developer-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2024-10-20T19:32:46Z", "timestamp": "2024-10-20T19:32:46Z",

View File

@@ -4,9 +4,9 @@
"GitOps Tool" "GitOps Tool"
], ],
"categories": [ "categories": [
"Developer-Tools",
"DevOps", "DevOps",
"Containerization-&-Orchestration" "Development",
"Infrastructure"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -5,8 +5,8 @@
"server-remote-management" "server-remote-management"
], ],
"categories": [ "categories": [
"Server-Panels", "Hardware",
"Hardware" "Infrastructure"
], ],
"update": { "update": {
"timestamp": "2024-10-20T19:32:46Z", "timestamp": "2024-10-20T19:32:46Z",

View File

@@ -5,8 +5,8 @@
"media-library" "media-library"
], ],
"categories": [ "categories": [
"File-Sharing-&-Sync", "Development",
"Developer-Tools" "File-Management-&-Sync"
], ],
"update": { "update": {
"timestamp": "2024-10-20T19:32:46Z", "timestamp": "2024-10-20T19:32:46Z",

View File

@@ -4,8 +4,8 @@
"Help Desk" "Help Desk"
], ],
"categories": [ "categories": [
"Office-Suites", "Development",
"Developer-Tools" "Notes-&-Productivity"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,8 +4,8 @@
"Router" "Router"
], ],
"categories": [ "categories": [
"Networking-Tools", "Home-Automation",
"Smart-Home" "Networking"
], ],
"update": { "update": {
"timestamp": "2023-04-16T12:26:21Z", "timestamp": "2023-04-16T12:26:21Z",

View File

@@ -5,8 +5,8 @@
"build-server" "build-server"
], ],
"categories": [ "categories": [
"Developer-Tools", "Development",
"Version-Control-Systems" "Version-Control"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -4,8 +4,8 @@
"Issue Tracker" "Issue Tracker"
], ],
"categories": [ "categories": [
"Developer-Tools", "Development",
"Office-Suites" "Notes-&-Productivity"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -5,8 +5,8 @@
"identity-provider" "identity-provider"
], ],
"categories": [ "categories": [
"Security", "Networking",
"Networking-Tools" "Security"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -5,8 +5,8 @@
"video-surveillance" "video-surveillance"
], ],
"categories": [ "categories": [
"Smart-Home", "Hardware",
"Hardware" "Home-Automation"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -5,7 +5,7 @@
], ],
"categories": [ "categories": [
"Home-Automation", "Home-Automation",
"Personal" "Notes-&-Productivity"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -4,8 +4,8 @@
"Cloud Backup" "Cloud Backup"
], ],
"categories": [ "categories": [
"Cloud-Computing", "Cloud-&-Hosting",
"File-Sharing-&-Sync" "File-Management-&-Sync"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -5,7 +5,7 @@
], ],
"categories": [ "categories": [
"Databases", "Databases",
"Developer-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -5,7 +5,7 @@
"data-backup" "data-backup"
], ],
"categories": [ "categories": [
"Developer-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -4,8 +4,8 @@
"CalDAV Server" "CalDAV Server"
], ],
"categories": [ "categories": [
"Server-Panels", "File-Management-&-Sync",
"File-Sharing-&-Sync" "Infrastructure"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -2,7 +2,7 @@
"base": "svg", "base": "svg",
"aliases": [], "aliases": [],
"categories": [ "categories": [
"Cloud" "Cloud-&-Hosting"
], ],
"update": { "update": {
"timestamp": "2025-04-17T16:57:40.799513", "timestamp": "2025-04-17T16:57:40.799513",

View File

@@ -4,9 +4,9 @@
"Session Manager" "Session Manager"
], ],
"categories": [ "categories": [
"Security", "Development",
"Developer-Tools", "Networking",
"Networking-Tools" "Security"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -4,8 +4,7 @@
"Habit Tracker" "Habit Tracker"
], ],
"categories": [ "categories": [
"Note-taking-Apps", "Notes-&-Productivity"
"Office-Suites"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,7 +4,7 @@
"php-web-framework" "php-web-framework"
], ],
"categories": [ "categories": [
"Developer-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,7 +4,7 @@
"Hosting Provider" "Hosting Provider"
], ],
"categories": [ "categories": [
"Cloud-Computing" "Cloud-&-Hosting"
], ],
"update": { "update": {
"timestamp": "2025-01-05T20:55:05Z", "timestamp": "2025-01-05T20:55:05Z",

View File

@@ -4,8 +4,8 @@
"Instagram Frontend" "Instagram Frontend"
], ],
"categories": [ "categories": [
"Social-Media", "Browsers-&-Search",
"Web-Browsers" "Community-&-Social"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -4,7 +4,7 @@
"Finance Tracker" "Finance Tracker"
], ],
"categories": [ "categories": [
"Finance-&-Banking" "Finance"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -5,7 +5,7 @@
"web-search" "web-search"
], ],
"categories": [ "categories": [
"Search-Engines" "Browsers-&-Search"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -2,7 +2,7 @@
"base": "svg", "base": "svg",
"aliases": [], "aliases": [],
"categories": [ "categories": [
"Logistics" "Organization-&-Planning"
], ],
"update": { "update": {
"timestamp": "2025-02-20T20:15:26.048635", "timestamp": "2025-02-20T20:15:26.048635",

View File

@@ -5,7 +5,7 @@
"digital-currency" "digital-currency"
], ],
"categories": [ "categories": [
"Finance-&-Banking" "Finance"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -5,7 +5,7 @@
"torrent-site" "torrent-site"
], ],
"categories": [ "categories": [
"Download-Managers" "Downloaders"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -4,7 +4,7 @@
"Password Manager" "Password Manager"
], ],
"categories": [ "categories": [
"Password-Managers", "Identity",
"Security" "Security"
], ],
"update": { "update": {

View File

@@ -5,7 +5,7 @@
"adblocking-dns" "adblocking-dns"
], ],
"categories": [ "categories": [
"Networking-Tools", "Networking",
"Security" "Security"
], ],
"update": { "update": {

View File

@@ -6,7 +6,7 @@
], ],
"categories": [ "categories": [
"Hardware", "Hardware",
"Networking-Tools" "Networking"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -5,7 +5,7 @@
"reading-log" "reading-log"
], ],
"categories": [ "categories": [
"Note-taking-Apps" "Notes-&-Productivity"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -5,7 +5,7 @@
"dev-browser" "dev-browser"
], ],
"categories": [ "categories": [
"Web-Browsers" "Browsers-&-Search"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -6,7 +6,7 @@
], ],
"categories": [ "categories": [
"Hardware", "Hardware",
"Office-Suites" "Notes-&-Productivity"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,8 +4,8 @@
"CI/CD" "CI/CD"
], ],
"categories": [ "categories": [
"Developer-Tools", "DevOps",
"DevOps" "Development"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -5,8 +5,8 @@
"personal-finance" "personal-finance"
], ],
"categories": [ "categories": [
"Finance-&-Banking", "Finance",
"Note-taking-Apps" "Notes-&-Productivity"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,7 +4,7 @@
"go-web-framework" "go-web-framework"
], ],
"categories": [ "categories": [
"Developer-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -4,8 +4,8 @@
"Reverse Proxy" "Reverse Proxy"
], ],
"categories": [ "categories": [
"Networking-Tools", "Infrastructure",
"Server-Panels", "Networking",
"Security" "Security"
], ],
"update": { "update": {

View File

@@ -4,8 +4,8 @@
"File Uploader" "File Uploader"
], ],
"categories": [ "categories": [
"File-Sharing-&-Sync", "Development",
"Developer-Tools" "File-Management-&-Sync"
], ],
"update": { "update": {
"timestamp": "2025-01-05T01:06:46Z", "timestamp": "2025-01-05T01:06:46Z",

View File

@@ -5,7 +5,7 @@
"alerting-tool" "alerting-tool"
], ],
"categories": [ "categories": [
"Monitoring-Tools" "Analytics-&-Monitoring"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -5,8 +5,8 @@
"performance-monitoring" "performance-monitoring"
], ],
"categories": [ "categories": [
"Monitoring-Tools", "Analytics-&-Monitoring",
"Networking-Tools" "Networking"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -5,7 +5,7 @@
"federated-social-network" "federated-social-network"
], ],
"categories": [ "categories": [
"Social-Media" "Community-&-Social"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -5,7 +5,7 @@
"book-converter" "book-converter"
], ],
"categories": [ "categories": [
"Media-Servers" "Streaming"
], ],
"update": { "update": {
"timestamp": "2023-04-13T20:27:58", "timestamp": "2023-04-13T20:27:58",

View File

@@ -4,8 +4,8 @@
"Camera Interface" "Camera Interface"
], ],
"categories": [ "categories": [
"Home-Automation", "Analytics-&-Monitoring",
"Monitoring-Tools" "Home-Automation"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -5,8 +5,8 @@
"tv-recording" "tv-recording"
], ],
"categories": [ "categories": [
"Media-Servers", "Home-Automation",
"Home-Automation" "Streaming"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,7 +4,7 @@
"AI Chatbot" "AI Chatbot"
], ],
"categories": [ "categories": [
"AI-&-LLM-Platforms" "AI"
], ],
"update": { "update": {
"timestamp": "2024-01-29T22:26:51Z", "timestamp": "2024-01-29T22:26:51Z",

View File

@@ -5,7 +5,7 @@
"beta-browser" "beta-browser"
], ],
"categories": [ "categories": [
"Web-Browsers" "Browsers-&-Search"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -5,7 +5,7 @@
"dev-browser" "dev-browser"
], ],
"categories": [ "categories": [
"Web-Browsers" "Browsers-&-Search"
], ],
"update": { "update": {
"timestamp": "2022-08-16T17:22:56Z", "timestamp": "2022-08-16T17:22:56Z",

View File

@@ -5,8 +5,8 @@
"browser-inspector" "browser-inspector"
], ],
"categories": [ "categories": [
"Developer-Tools", "Browsers-&-Search",
"Web-Browsers" "Development"
], ],
"update": { "update": {
"timestamp": "2022-08-16T17:22:56Z", "timestamp": "2022-08-16T17:22:56Z",

View File

@@ -2,8 +2,8 @@
"base": "png", "base": "png",
"aliases": [], "aliases": [],
"categories": [ "categories": [
"Media-Servers", "Home-Automation",
"Smart-Home" "Streaming"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -5,7 +5,7 @@
], ],
"categories": [ "categories": [
"Communication", "Communication",
"Social-Media" "Community-&-Social"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -5,8 +5,8 @@
"deployment-service" "deployment-service"
], ],
"categories": [ "categories": [
"Cloud-Computing", "Cloud-&-Hosting",
"Developer-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -5,8 +5,8 @@
"online-ide" "online-ide"
], ],
"categories": [ "categories": [
"Developer-Tools", "Cloud-&-Hosting",
"Cloud-Computing" "Development"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,9 +4,9 @@
"Static Site Hosting" "Static Site Hosting"
], ],
"categories": [ "categories": [
"Web-Browsers", "Browsers-&-Search",
"Developer-Tools", "Cloud-&-Hosting",
"Cloud-Computing" "Development"
], ],
"update": { "update": {
"timestamp": "2023-04-13T20:27:58Z", "timestamp": "2023-04-13T20:27:58Z",

View File

@@ -5,9 +5,9 @@
"secure-access-service" "secure-access-service"
], ],
"categories": [ "categories": [
"Security", "Cloud-&-Hosting",
"Cloud-Computing", "Networking",
"Networking-Tools" "Security"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -5,8 +5,8 @@
"ddos-protection" "ddos-protection"
], ],
"categories": [ "categories": [
"Cloud-Computing", "Cloud-&-Hosting",
"Networking-Tools", "Networking",
"Security" "Security"
], ],
"update": { "update": {

View File

@@ -5,11 +5,11 @@
"video-downloader" "video-downloader"
], ],
"categories": [ "categories": [
"Social-Media", "Cloud-&-Hosting",
"File", "Community-&-Social",
"Cloud", "Downloaders",
"Video", "File-Management-&-Sync",
"Download-Managers" "Video"
], ],
"update": { "update": {
"timestamp": "2025-03-21T20:19:04.169259", "timestamp": "2025-03-21T20:19:04.169259",

View File

@@ -5,7 +5,7 @@
"ide" "ide"
], ],
"categories": [ "categories": [
"Developer-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -4,8 +4,8 @@
"Code Hosting" "Code Hosting"
], ],
"categories": [ "categories": [
"Version-Control-Systems", "Development",
"Developer-Tools" "Version-Control"
], ],
"update": { "update": {
"timestamp": "2023-04-13T20:27:58Z", "timestamp": "2023-04-13T20:27:58Z",

View File

@@ -4,8 +4,8 @@
"Code Analytics" "Code Analytics"
], ],
"categories": [ "categories": [
"Developer-Tools", "Analytics-&-Monitoring",
"Monitoring-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -5,8 +5,8 @@
"embeddable-comments" "embeddable-comments"
], ],
"categories": [ "categories": [
"Web-Browsers", "Browsers-&-Search",
"Developer-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,8 +4,8 @@
"Service Discovery" "Service Discovery"
], ],
"categories": [ "categories": [
"Networking-Tools", "Development",
"Developer-Tools" "Networking"
], ],
"update": { "update": {
"timestamp": "2024-01-01T11:20:28Z", "timestamp": "2024-01-01T11:20:28Z",

View File

@@ -5,8 +5,8 @@
"instant-messaging-app" "instant-messaging-app"
], ],
"categories": [ "categories": [
"Networking-Tools", "Communication",
"Communication" "Networking"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,8 +4,8 @@
"Fan Control" "Fan Control"
], ],
"categories": [ "categories": [
"Hardware", "Analytics-&-Monitoring",
"Monitoring-Tools" "Hardware"
], ],
"update": { "update": {
"timestamp": "2025-04-09T12:21:43.314393", "timestamp": "2025-04-09T12:21:43.314393",

View File

@@ -4,8 +4,8 @@
"App Deployment" "App Deployment"
], ],
"categories": [ "categories": [
"Developer-Tools", "Development",
"Server-Panels" "Infrastructure"
], ],
"update": { "update": {
"timestamp": "2024-06-01T17:40:45Z", "timestamp": "2024-06-01T17:40:45Z",

View File

@@ -4,8 +4,8 @@
"DNS Server" "DNS Server"
], ],
"categories": [ "categories": [
"Networking-Tools", "Infrastructure",
"Server-Panels" "Networking"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -5,7 +5,7 @@
"invoice-app" "invoice-app"
], ],
"categories": [ "categories": [
"Finance-&-Banking" "Finance"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -5,8 +5,8 @@
"private-document-editor" "private-document-editor"
], ],
"categories": [ "categories": [
"Office-Suites", "File-Management-&-Sync",
"File-Sharing-&-Sync" "Notes-&-Productivity"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -5,8 +5,8 @@
"c-sharp" "c-sharp"
], ],
"categories": [ "categories": [
"Programming-Languages", "Development",
"Developer-Tools" "Programming-Languages"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -5,7 +5,7 @@
"the-cyber-chef" "the-cyber-chef"
], ],
"categories": [ "categories": [
"Developer-Tools" "Development"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -4,8 +4,8 @@
"Duplicate File Finder" "Duplicate File Finder"
], ],
"categories": [ "categories": [
"File-Sharing-&-Sync", "File-Management-&-Sync",
"Office-Suites" "Notes-&-Productivity"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,8 +4,8 @@
"Network Devices" "Network Devices"
], ],
"categories": [ "categories": [
"Networking-Tools", "Hardware",
"Hardware" "Networking"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -5,8 +5,8 @@
"video-surveillance" "video-surveillance"
], ],
"categories": [ "categories": [
"Smart-Home", "Hardware",
"Hardware" "Home-Automation"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -5,7 +5,7 @@
], ],
"categories": [ "categories": [
"Databases", "Databases",
"Organization" "Organization-&-Planning"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,8 +4,8 @@
"Server Dashboard" "Server Dashboard"
], ],
"categories": [ "categories": [
"Monitoring-Tools", "Analytics-&-Monitoring",
"Server-Panels" "Infrastructure"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -5,8 +5,8 @@
"scheduling-server" "scheduling-server"
], ],
"categories": [ "categories": [
"Networking-Tools", "Networking",
"Office-Suites" "Notes-&-Productivity"
], ],
"update": { "update": {
"timestamp": "2024-10-20T17:24:03Z", "timestamp": "2024-10-20T17:24:03Z",

View File

@@ -4,9 +4,8 @@
"Weather Station" "Weather Station"
], ],
"categories": [ "categories": [
"Home-Automation", "Analytics-&-Monitoring",
"Monitoring-Tools", "Home-Automation"
"Smart-Home"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -4,9 +4,9 @@
"Container Platform" "Container Platform"
], ],
"categories": [ "categories": [
"Containerization-&-Orchestration", "Cloud-&-Hosting",
"Developer-Tools", "Development",
"Cloud-Computing" "Infrastructure"
], ],
"update": { "update": {
"timestamp": "2023-04-13T13:56:18Z", "timestamp": "2023-04-13T13:56:18Z",

View File

@@ -4,9 +4,9 @@
"Router Firmware" "Router Firmware"
], ],
"categories": [ "categories": [
"Operating-Systems", "Linux-Distributions",
"Networking-Tools", "Networking",
"Linux-Distributions" "Operating-Systems"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

View File

@@ -4,8 +4,8 @@
"Music Downloader" "Music Downloader"
], ],
"categories": [ "categories": [
"Download-Managers", "Downloaders",
"Music-Streaming" "Streaming"
], ],
"update": { "update": {
"timestamp": "2025-01-07T17:54:03Z", "timestamp": "2025-01-07T17:54:03Z",

Some files were not shown because too many files have changed in this diff Show More