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
3545 changed files with 47799 additions and 73754 deletions

View File

@@ -14,61 +14,70 @@ body:
label: Icon name label: Icon name
description: The name has to be unique and should be kebab-case. description: The name has to be unique and should be kebab-case.
placeholder: e.g. "icon-name" placeholder: e.g. "icon-name"
validations:
required: true
- type: textarea - type: textarea
attributes: attributes:
label: Paste light mode icon label: Paste light mode icon
description: | description: |
Please paste the icon here. It will automatically upload it to github. This icon should be visible on a light background. Please paste the icon here. It will automatically upload it to github. This icon should be visible on a light background.
validations:
required: true
- type: textarea - type: textarea
attributes: attributes:
label: Paste dark mode icon label: Paste dark mode icon
description: | description: |
Please paste the icon here. It will automatically upload it to github. This icon should be visible on a dark background. Please paste the icon here. It will automatically upload it to github. This icon should be visible on a dark background.
validations:
required: true
- type: dropdown - type: dropdown
attributes: attributes:
label: Icon type label: Icon type
options: options:
- SVG - SVG
- PNG - PNG
validations:
required: true
- type: dropdown - type: dropdown
attributes: attributes:
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

@@ -15,16 +15,12 @@ body:
label: Icon name label: Icon name
description: The name has to be unique and should be kebab-case. description: The name has to be unique and should be kebab-case.
placeholder: e.g. "icon-name" placeholder: e.g. "icon-name"
validations:
required: true
- type: textarea - type: textarea
id: icon id: icon
attributes: attributes:
label: Paste icon label: Paste icon
description: | description: |
Please paste the icon here. It will automatically upload it to github. Please paste the icon here. It will automatically upload it to github.
validations:
required: true
- type: dropdown - type: dropdown
id: type id: type
attributes: attributes:
@@ -32,39 +28,54 @@ body:
options: options:
- SVG - SVG
- PNG - PNG
validations:
required: true
- type: dropdown - type: dropdown
attributes: attributes:
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

@@ -13,30 +13,70 @@ body:
label: Icon name label: Icon name
description: The name has to be unique and should be kebab-case. description: The name has to be unique and should be kebab-case.
placeholder: e.g. "icon-name" placeholder: e.g. "icon-name"
validations:
required: true
- type: textarea - type: textarea
attributes: attributes:
label: Paste light mode icon label: Paste light mode icon
description: | description: |
Please paste the icon here. It will automatically upload it to github. This icon should be visible on a light background. Please paste the icon here. It will automatically upload it to github. This icon should be visible on a light background.
validations:
required: true
- type: textarea - type: textarea
attributes: attributes:
label: Paste dark mode icon label: Paste dark mode icon
description: | description: |
Please paste the icon here. It will automatically upload it to github. This icon should be visible on a dark background. Please paste the icon here. It will automatically upload it to github. This icon should be visible on a dark background.
validations:
required: true
- type: dropdown - type: dropdown
attributes: attributes:
label: Icon type label: Icon type
options: options:
- SVG - SVG
- PNG - PNG
validations: - type: dropdown
required: true 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

@@ -13,23 +13,65 @@ body:
label: Icon name label: Icon name
description: The name has to match the existing icon name. description: The name has to match the existing icon name.
placeholder: e.g. "icon-name" placeholder: e.g. "icon-name"
validations:
required: true
- type: textarea - type: textarea
attributes: attributes:
label: Paste icon label: Paste icon
description: | description: |
Please paste the icon here. It will automatically upload it to github. Please paste the icon here. It will automatically upload it to github.
validations:
required: true
- type: dropdown - type: dropdown
attributes: attributes:
label: Icon type label: Icon type
options: options:
- SVG - SVG
- PNG - PNG
validations: - type: dropdown
required: true 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

@@ -11,7 +11,7 @@ jobs:
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v5 uses: actions/checkout@v3
with: with:
ref: ${{ github.ref_name }} ref: ${{ github.ref_name }}

View File

@@ -20,13 +20,13 @@ jobs:
private_key: ${{ secrets.DASHBOARD_ICONS_MANAGER_APP_PRIVATE_KEY }} private_key: ${{ secrets.DASHBOARD_ICONS_MANAGER_APP_PRIVATE_KEY }}
app_id: ${{ vars.DASHBOARD_ICONS_MANAGER_APP_ID }} app_id: ${{ vars.DASHBOARD_ICONS_MANAGER_APP_ID }}
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
env: env:
GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }} GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }}
- name: Set Up Python - name: Set Up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
python-version: "3.14.0" python-version: "3.11"
- name: Install Dependencies - name: Install Dependencies
run: | run: |
pip install cairosvg pillow requests pip install cairosvg pillow requests
@@ -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

@@ -20,13 +20,13 @@ jobs:
private_key: ${{ secrets.DASHBOARD_ICONS_MANAGER_APP_PRIVATE_KEY }} private_key: ${{ secrets.DASHBOARD_ICONS_MANAGER_APP_PRIVATE_KEY }}
app_id: ${{ vars.DASHBOARD_ICONS_MANAGER_APP_ID }} app_id: ${{ vars.DASHBOARD_ICONS_MANAGER_APP_ID }}
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
env: env:
GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }} GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }}
- name: Set Up Python - name: Set Up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
python-version: "3.14.0" python-version: "3.11"
- name: Install Dependencies - name: Install Dependencies
run: | run: |
pip install cairosvg pillow requests pip install cairosvg pillow requests
@@ -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

@@ -10,14 +10,14 @@ jobs:
contents: write contents: write
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v5 uses: actions/checkout@v3
with: with:
ref: ${{ github.ref_name }} ref: ${{ github.ref_name }}
- name: Set Up Python - name: Set Up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
python-version: "3.14.0" python-version: "3.9"
- name: Install Dependencies - name: Install Dependencies
run: | run: |
@@ -43,14 +43,14 @@ jobs:
contents: write contents: write
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v5 uses: actions/checkout@v3
with: with:
ref: ${{ github.ref_name }} ref: ${{ github.ref_name }}
- name: Set Up Python - name: Set Up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
python-version: "3.14.0" python-version: "3.9"
- name: Commit and Push Changes - name: Commit and Push Changes
run: | run: |
@@ -68,14 +68,14 @@ jobs:
contents: write contents: write
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v5 uses: actions/checkout@v3
with: with:
ref: ${{ github.ref_name }} ref: ${{ github.ref_name }}
- name: Set Up Python - name: Set Up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
python-version: "3.14.0" python-version: "3.9"
- name: Commit and Push Changes - name: Commit and Push Changes
run: | run: |

View File

@@ -10,12 +10,12 @@ jobs:
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v5 uses: actions/checkout@v3
- name: Set Up Python - name: Set Up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
python-version: "3.14.0" python-version: "3.9"
- name: Install Dependencies - name: Install Dependencies
run: | run: |
@@ -25,7 +25,7 @@ jobs:
run: python scripts/convert_svg_assets.py run: python scripts/convert_svg_assets.py
- name: Upload Converted Icons - name: Upload Converted Icons
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3
with: with:
name: converted-icons name: converted-icons
path: | path: |

View File

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Media"
],
"update": {
"timestamp": "2025-08-18T21:15:20.394373",
"author": {
"id": 150935816,
"login": "Dvorinka"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Development"
],
"update": {
"timestamp": "2025-06-18T05:14:18.987936",
"author": {
"id": 98148330,
"login": "YuSung-2022"
}
}
}

View File

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

View File

@@ -1,17 +0,0 @@
{
"base": "svg",
"aliases": [
"chan",
"luck"
],
"categories": [
"Communication"
],
"update": {
"timestamp": "2025-10-04T13:23:43.208364",
"author": {
"id": 123755552,
"login": "jashanpbpb"
}
}
}

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

@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2025-06-30T18:55:02.066881",
"author": {
"id": 1392556,
"login": "vitofasano"
}
}
}

View File

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [
"aboardhr"
],
"categories": [],
"update": {
"timestamp": "2025-09-06T18:26:21.574041",
"author": {
"id": 412615,
"login": "johanekhager"
}
}
}

View File

@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2025-06-30T19:04:39.456692",
"author": {
"id": 2733215,
"login": "bakito"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [
"Logistics"
],
"update": {
"timestamp": "2025-08-18T21:33:40.843973",
"author": {
"id": 442966,
"login": "hanjo"
}
}
}

View File

@@ -3,10 +3,10 @@
"aliases": [], "aliases": [],
"categories": [], "categories": [],
"update": { "update": {
"timestamp": "2025-07-01T04:17:50.642999", "timestamp": "2024-10-20T17:24:03Z",
"author": { "author": {
"id": 98704938, "id": 71191962,
"login": "seanmorley15" "name": "walkxcode"
} }
} }
} }

View File

@@ -1,14 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [
"Organization"
],
"update": {
"timestamp": "2025-09-10T18:16:01.315508",
"author": {
"id": 679198,
"login": "alexandru-calinoiu"
}
}
}

View File

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Media"
],
"update": {
"timestamp": "2025-09-08T13:09:10.678938",
"author": {
"id": 13280079,
"login": "jjbobzin"
}
}
}

View File

@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [
"airtrail"
],
"categories": [
"Travel"
],
"update": {
"timestamp": "2025-09-08T12:23:51.466615",
"author": {
"id": 1340823,
"login": "b12e"
}
}
}

View File

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Cloud"
],
"update": {
"timestamp": "2025-10-18T13:50:38.466025",
"author": {
"id": 19624259,
"login": "seeharrison"
}
}
}

View File

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Finance"
],
"update": {
"timestamp": "2025-05-11T20:01:41.455664",
"author": {
"id": 10255587,
"login": "SteffeyDev"
}
}
}

View File

@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2025-09-28T10:30:53.395293",
"author": {
"id": 127128984,
"login": "Ray2023m"
}
}
}

View File

@@ -1,18 +0,0 @@
{
"base": "svg",
"aliases": [
"ali-yun",
"alibaba",
"cloud"
],
"categories": [
"Cloud"
],
"update": {
"timestamp": "2025-10-22T14:29:45.111918",
"author": {
"id": 177024972,
"login": "AaronYang0628"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Development"
],
"update": {
"timestamp": "2025-09-08T12:56:41.622583",
"author": {
"id": 109094587,
"login": "Yarnacle"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Music"
],
"update": {
"timestamp": "2025-09-26T20:59:46.315320",
"author": {
"id": 23657968,
"login": "springsunx"
}
}
}

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

@@ -1,21 +0,0 @@
{
"base": "svg",
"aliases": [
"apple",
"maps",
"apple-maps",
"applemaps",
"mapsapple",
"maps-apple"
],
"categories": [
"Location"
],
"update": {
"timestamp": "2025-10-14T20:27:33.730998",
"author": {
"id": 58250719,
"login": "Okaza03"
}
}
}

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

@@ -1,16 +0,0 @@
{
"base": "svg",
"aliases": [
"podcast"
],
"categories": [
"Media"
],
"update": {
"timestamp": "2025-10-14T20:36:03.418327",
"author": {
"id": 111296018,
"login": "ARandomPigeon"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Development"
],
"update": {
"timestamp": "2025-10-15T20:43:42.346161",
"author": {
"id": 25576967,
"login": "kmendell"
}
}
}

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

@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2023-04-13T13:56:18Z",
"author": {
"id": 71191962,
"name": "walkxcode"
}
}
}

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

@@ -3,10 +3,10 @@
"aliases": [], "aliases": [],
"categories": [], "categories": [],
"update": { "update": {
"timestamp": "2025-05-21T09:09:56.753640", "timestamp": "2023-04-13T13:56:18Z",
"author": { "author": {
"id": 652463, "id": 71191962,
"login": "verglor" "name": "walkxcode"
} }
} }
} }

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Media"
],
"update": {
"timestamp": "2025-06-30T18:45:27.729531",
"author": {
"id": 82271911,
"login": "Khyzer10"
}
}
}

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

@@ -1,17 +0,0 @@
{
"base": "svg",
"aliases": [
"autocad",
"autodesk"
],
"categories": [
"Development"
],
"update": {
"timestamp": "2025-10-04T13:20:51.894933",
"author": {
"id": 230745655,
"login": "stillkool"
}
}
}

View File

@@ -1,18 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Media"
],
"update": {
"timestamp": "2025-05-12T16:23:45.630840",
"author": {
"id": 63781622,
"login": "Meierschlumpf"
}
},
"colors": {
"light": "autobangumi",
"dark": "autobangumi-dark"
}
}

View File

@@ -1,14 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [
"Hardware"
],
"update": {
"timestamp": "2025-06-19T05:11:03.846604",
"author": {
"id": 68505869,
"login": "adriantankodev"
}
}
}

View File

@@ -1,18 +1,22 @@
{ {
"base": "svg", "base": "png",
"aliases": [ "aliases": [
"security-camera-company", "security-camera-company",
"video-surveillance" "video-surveillance"
], ],
"categories": [ "categories": [
"Smart-Home", "Hardware",
"Hardware" "Home-Automation"
], ],
"update": { "update": {
"timestamp": "2025-09-28T09:38:41.752362", "timestamp": "2025-01-07T17:54:03Z",
"author": { "author": {
"id": 63781622, "id": 71191962,
"login": "Meierschlumpf" "name": "walkxcode"
} }
},
"colors": {
"dark": "axis",
"light": "axis-light"
} }
} }

View File

@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2025-05-21T08:40:49.961984",
"author": {
"id": 48109134,
"login": "jdcool00"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"SocialMedia"
],
"update": {
"timestamp": "2025-08-30T13:35:57.844729",
"author": {
"id": 92841831,
"login": "pourya22334415"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Development"
],
"update": {
"timestamp": "2025-10-18T14:05:18.134102",
"author": {
"id": 74367192,
"login": "th33k"
}
}
}

View File

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Music"
],
"update": {
"timestamp": "2025-10-17T16:46:50.127333",
"author": {
"id": 155105197,
"login": "LuizFelipeOliver"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [
"Gaming"
],
"update": {
"timestamp": "2025-09-26T21:35:05.132584",
"author": {
"id": 18689323,
"login": "davidlav"
}
}
}

View File

@@ -1,12 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2025-09-08T12:02:55.867500",
"author": {
"id": 165560954,
"login": "Serster"
}
}
}

View File

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [
"bequiet"
],
"categories": [],
"update": {
"timestamp": "2025-09-26T21:38:50.375046",
"author": {
"id": 58707896,
"login": "bannert1337"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"E-Commerce"
],
"update": {
"timestamp": "2025-06-16T21:17:22.434178",
"author": {
"id": 114433629,
"login": "Deisling"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Development"
],
"update": {
"timestamp": "2025-10-17T16:56:04.816102",
"author": {
"id": 38050638,
"login": "angeloschat"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Video"
],
"update": {
"timestamp": "2025-09-28T09:50:10.194608",
"author": {
"id": 127128984,
"login": "Ray2023m"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Communication"
],
"update": {
"timestamp": "2025-06-17T17:03:33.578957",
"author": {
"id": 33011496,
"login": "Zachmoore111"
}
}
}

View File

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

View File

@@ -1,22 +0,0 @@
{
"base": "png",
"aliases": [
"bitwig",
"studio",
"bitwig-music"
],
"categories": [
"Music"
],
"update": {
"timestamp": "2025-09-09T20:49:37.952500",
"author": {
"id": 160300441,
"login": "BuilderBoy163"
}
},
"colors": {
"light": "bitwig-studio",
"dark": "bitwig-studio-dark"
}
}

View File

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

View File

@@ -1,16 +0,0 @@
{
"base": "png",
"aliases": [
"bible-study"
],
"categories": [
"Education"
],
"update": {
"timestamp": "2025-10-14T19:49:57.787938",
"author": {
"id": 40521502,
"login": "TheArtForm"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [
"Organization"
],
"update": {
"timestamp": "2025-05-08T21:13:01.765713",
"author": {
"id": 1506555,
"login": "danielkoster"
}
}
}

View File

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Media"
],
"update": {
"timestamp": "2025-08-06T18:14:48.266125",
"author": {
"id": 82271911,
"login": "Khyzer10"
}
}
}

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

@@ -1,12 +0,0 @@
{
"base": "png",
"aliases": [],
"categories": [],
"update": {
"timestamp": "2025-09-12T20:28:01.211968",
"author": {
"id": 231333728,
"login": "nuno2229"
}
}
}

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

@@ -1,14 +0,0 @@
{
"base": "svg",
"aliases": [],
"categories": [
"Logistics"
],
"update": {
"timestamp": "2025-05-08T20:55:30.191802",
"author": {
"id": 31495062,
"login": "jeremywillans"
}
}
}

View File

@@ -1,18 +0,0 @@
{
"base": "svg",
"aliases": [
"brightmove",
"bright-move-ats",
"brightmove-ats"
],
"categories": [
"Organization"
],
"update": {
"timestamp": "2025-09-06T18:33:28.889668",
"author": {
"id": 4467101,
"login": "prowave"
}
}
}

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