Use different SVG images for the different PDS

This commit is contained in:
Michael 2026-03-16 23:45:05 +00:00
commit 1401eaa66a
14 changed files with 341 additions and 10 deletions

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-0.0620117 0.348442 87.9941 74.9653">
<path d="M41.9565 74.9643L24.0161 74.9653L41.9565 74.9643ZM63.8511 74.9653H45.9097L63.8501 74.9643V57.3286H63.8511V74.9653ZM45.9097 44.5893C45.9099 49.2737 49.7077 53.0707 54.3921 53.0707H63.8501V57.3286H54.3921C49.7077 57.3286 45.9099 61.1257 45.9097 65.81V74.9643H41.9565V65.81C41.9563 61.1258 38.1593 57.3287 33.4751 57.3286H24.0161V53.0707H33.4741C38.1587 53.0707 41.9565 49.2729 41.9565 44.5883V35.1303H45.9097V44.5893ZM63.8511 53.0707H63.8501V35.1303H63.8511V53.0707Z" fill="black"></path>
<path d="M52.7272 9.83198C49.4148 13.1445 49.4148 18.5151 52.7272 21.8275L59.4155 28.5158L56.4051 31.5262L49.7169 24.8379C46.4044 21.5254 41.0338 21.5254 37.7213 24.8379L31.2482 31.3111L28.4527 28.5156L34.9259 22.0424C38.2383 18.7299 38.2383 13.3594 34.9259 10.0469L28.2378 3.35883L31.2482 0.348442L37.9365 7.03672C41.2489 10.3492 46.6195 10.3492 49.932 7.03672L56.6203 0.348442L59.4155 3.14371L52.7272 9.83198Z" fill="black"/>
<path d="M24.3831 23.2335C23.1706 27.7584 25.8559 32.4095 30.3808 33.6219L39.5172 36.07L38.4154 40.182L29.2793 37.734C24.7544 36.5215 20.1033 39.2068 18.8909 43.7317L16.5215 52.5745L12.7028 51.5513L15.0721 42.7088C16.2846 38.1839 13.5993 33.5328 9.07434 32.3204L-0.0620117 29.8723L1.03987 25.76L10.1762 28.2081C14.7011 29.4206 19.3522 26.7352 20.5647 22.2103L23.0127 13.074L26.8311 14.0971L24.3831 23.2335Z" fill="black"/>
<path d="M67.3676 22.0297C68.5801 26.5546 73.2311 29.2399 77.756 28.0275L86.8923 25.5794L87.9941 29.6914L78.8578 32.1394C74.3329 33.3519 71.6476 38.003 72.86 42.5279L75.2294 51.3707L71.411 52.3938L69.0417 43.5513C67.8293 39.0264 63.1782 36.3411 58.6533 37.5535L49.5169 40.0016L48.415 35.8894L57.5514 33.4413C62.0763 32.2288 64.7616 27.5778 63.5492 23.0528L61.1011 13.9165L64.9195 12.8934L67.3676 22.0297Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,2 @@
SPDX-FileCopyrightText: https://commons.wikimedia.org/wiki/File:Blacksky_Algorithms_Logo_(black).svg
SPDX-License-Identifier: CC0-1.0

View file

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 461 510" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,128.375,27.0069)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:black;stroke-width:0.67px;"/>
</g>
</g>
<g>
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:black;stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,67.5926,221.36)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:black;stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,374.121,172.829)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:black;stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,202.563,-210.015)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:black;stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,380.732,-81.8617)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:black;stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(0.759576,-2.35171,0.365844,0.118164,-102.007,679.384)">
<path d="M120.752,330.756L173.954,330.756C173.714,340.398 173.702,350.374 173.944,360.361L121.004,360.361C121.159,350.66 121.083,340.686 120.752,330.756Z"/>
</g>
<g transform="matrix(0.759576,-2.35171,0.365844,0.118164,-102.007,679.384)">
<path d="M120.752,329.456L173.954,329.456C174.013,329.456 174.07,329.623 174.108,329.912C174.147,330.202 174.163,330.586 174.154,330.962C173.917,340.472 173.905,350.31 174.144,360.161C174.153,360.536 174.136,360.919 174.098,361.207C174.06,361.496 174.003,361.662 173.944,361.662L121.004,361.662C120.946,361.662 120.892,361.506 120.853,361.233C120.815,360.959 120.796,360.594 120.802,360.228C120.955,350.659 120.881,340.822 120.554,331.029C120.542,330.645 120.557,330.244 120.595,329.939C120.633,329.633 120.691,329.456 120.752,329.456ZM121,332.057C121.278,341.113 121.347,350.192 121.226,359.061C121.226,359.061 173.71,359.061 173.71,359.061C173.512,349.957 173.521,340.877 173.719,332.057L121,332.057Z"/>
</g>
<g transform="matrix(2.99645,1.73569,-0.192701,0.332673,-79.3508,-17.2321)">
<path d="M176.303,360.361L114.623,360.361C114.865,350.716 114.943,340.724 114.844,330.756L176.361,330.756C176.173,340.462 176.15,350.453 176.303,360.361Z"/>
</g>
<g transform="matrix(2.99645,1.73569,-0.192701,0.332673,-79.3508,-17.2321)">
<path d="M176.303,361.662L114.623,361.662C114.579,361.662 114.537,361.482 114.51,361.173C114.482,360.864 114.472,360.46 114.482,360.074C114.721,350.56 114.798,340.703 114.701,330.871C114.697,330.508 114.711,330.147 114.738,329.878C114.765,329.609 114.804,329.456 114.844,329.456L176.361,329.456C176.404,329.456 176.444,329.625 176.472,329.919C176.499,330.213 176.511,330.602 176.504,330.98C176.318,340.554 176.295,350.409 176.446,360.182C176.452,360.555 176.44,360.931 176.412,361.215C176.385,361.499 176.345,361.662 176.303,361.662ZM176.139,359.061C176.015,350.022 176.035,340.931 176.191,332.057C172.647,332.057 115.001,332.057 115.001,332.057C115.076,341.143 115.007,350.236 114.802,359.061L176.139,359.061Z"/>
</g>
<g transform="matrix(1.036,0.23923,-0.0865007,0.374596,-16.6075,98.5597)">
<path d="M117.078,330.756L172.417,330.756C171.947,340.383 172.006,350.349 172.66,360.361L117.606,360.361C117.983,350.708 117.828,340.743 117.078,330.756Z"/>
</g>
<g transform="matrix(1.036,0.23923,-0.0865007,0.374596,-16.6075,98.5597)">
<path d="M117.078,329.456L172.417,329.456C172.553,329.456 172.682,329.618 172.771,329.9C172.86,330.183 172.901,330.558 172.883,330.93C172.42,340.425 172.478,350.255 173.123,360.13C173.148,360.51 173.11,360.9 173.021,361.195C172.932,361.491 172.799,361.662 172.66,361.662L117.606,361.662C117.472,361.662 117.345,361.505 117.256,361.23C117.167,360.956 117.124,360.589 117.138,360.222C117.51,350.7 117.358,340.871 116.617,331.021C116.589,330.638 116.624,330.239 116.713,329.935C116.802,329.632 116.936,329.456 117.078,329.456ZM117.651,332.057C118.28,341.159 118.422,350.232 118.126,359.061C118.126,359.061 172.102,359.061 172.102,359.061C171.56,349.938 171.504,340.864 171.883,332.057L117.651,332.057Z"/>
</g>
<g transform="matrix(0.891455,-2.76001,0.365844,0.118164,-52.8187,518.104)">
<path d="M175.685,360.361L115.21,360.361C115.311,350.635 115.215,340.662 114.9,330.756L175.749,330.756C175.526,340.383 175.497,350.359 175.685,360.361Z"/>
</g>
<g transform="matrix(0.891455,-2.76001,0.365844,0.118164,-52.8187,518.104)">
<path d="M175.685,361.662L115.21,361.662C115.161,361.662 115.116,361.51 115.083,361.244C115.05,360.978 115.034,360.621 115.038,360.259C115.138,350.666 115.043,340.829 114.733,331.059C114.72,330.672 114.732,330.264 114.765,329.951C114.798,329.638 114.847,329.456 114.9,329.456L175.749,329.456C175.8,329.456 175.848,329.625 175.881,329.919C175.914,330.213 175.927,330.602 175.919,330.98C175.699,340.475 175.671,350.314 175.856,360.179C175.863,360.552 175.848,360.93 175.815,361.214C175.782,361.499 175.735,361.662 175.685,361.662ZM175.488,359.061C175.336,349.946 175.361,340.865 175.545,332.057C175.545,332.057 115.117,332.057 115.117,332.057C115.383,341.094 115.47,350.172 115.395,359.061L175.488,359.061Z"/>
</g>
<g transform="matrix(3.13548,-1.44294,0.160722,0.349247,-217.31,314.036)">
<path d="M174.941,360.361L115.971,360.361C116.331,350.612 116.506,340.628 116.509,330.756L175.008,330.756C174.811,340.66 174.793,350.644 174.941,360.361Z"/>
</g>
<g transform="matrix(3.13548,-1.44294,0.160722,0.349247,-217.31,314.036)">
<path d="M174.941,361.662L115.971,361.662C115.924,361.662 115.881,361.461 115.853,361.123C115.826,360.784 115.819,360.348 115.833,359.952C116.189,350.336 116.361,340.489 116.364,330.752C116.364,330.036 116.429,329.456 116.509,329.456L175.008,329.456C175.051,329.456 175.092,329.626 175.12,329.922C175.147,330.217 175.159,330.606 175.151,330.985C174.956,340.754 174.939,350.601 175.085,360.185C175.09,360.558 175.078,360.934 175.05,361.217C175.023,361.5 174.983,361.662 174.941,361.662ZM174.776,359.061C174.657,350.179 174.673,341.092 174.837,332.057C174.837,332.057 116.652,332.057 116.652,332.057C116.636,341.064 116.479,350.15 116.17,359.061L174.776,359.061Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View file

@ -0,0 +1,2 @@
SPDX-FileCopyrightText: derived from https://github.com/eurosky-social/.github/blob/main/profile/logo.png by xje4@chaos.social
SPDX-License-Identifier: CC0-1.0

View file

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 461 510" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,128.375,27.0069)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:rgb(255,210,35);"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:rgb(255,195,35);stroke-width:0.67px;"/>
</g>
</g>
<g>
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:rgb(255,210,35);"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:rgb(255,195,35);stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,67.5926,221.36)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:rgb(255,210,35);"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:rgb(255,195,35);stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,374.121,172.829)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:rgb(255,210,35);"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:rgb(255,195,35);stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,202.563,-210.015)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:rgb(255,210,35);"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:rgb(255,195,35);stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,380.732,-81.8617)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:rgb(255,210,35);"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:rgb(255,195,35);stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(0.759576,-2.35171,0.365844,0.118164,-102.007,679.384)">
<path d="M120.752,330.756L173.954,330.756C173.714,340.398 173.702,350.374 173.944,360.361L121.004,360.361C121.159,350.66 121.083,340.686 120.752,330.756Z" style="fill:rgb(20,106,190);"/>
</g>
<g transform="matrix(0.759576,-2.35171,0.365844,0.118164,-102.007,679.384)">
<path d="M120.752,329.456L173.954,329.456C174.013,329.456 174.07,329.623 174.108,329.912C174.147,330.202 174.163,330.586 174.154,330.962C173.917,340.472 173.905,350.31 174.144,360.161C174.153,360.536 174.136,360.919 174.098,361.207C174.06,361.496 174.003,361.662 173.944,361.662L121.004,361.662C120.946,361.662 120.892,361.506 120.853,361.233C120.815,360.959 120.796,360.594 120.802,360.228C120.955,350.659 120.881,340.822 120.554,331.029C120.542,330.645 120.557,330.244 120.595,329.939C120.633,329.633 120.691,329.456 120.752,329.456ZM121,332.057C121.278,341.113 121.347,350.192 121.226,359.061C121.226,359.061 173.71,359.061 173.71,359.061C173.512,349.957 173.521,340.877 173.719,332.057L121,332.057Z" style="fill:rgb(5,75,159);"/>
</g>
<g transform="matrix(2.99645,1.73569,-0.192701,0.332673,-79.3508,-17.2321)">
<path d="M176.303,360.361L114.623,360.361C114.865,350.716 114.943,340.724 114.844,330.756L176.361,330.756C176.173,340.462 176.15,350.453 176.303,360.361Z" style="fill:rgb(20,106,190);"/>
</g>
<g transform="matrix(2.99645,1.73569,-0.192701,0.332673,-79.3508,-17.2321)">
<path d="M176.303,361.662L114.623,361.662C114.579,361.662 114.537,361.482 114.51,361.173C114.482,360.864 114.472,360.46 114.482,360.074C114.721,350.56 114.798,340.703 114.701,330.871C114.697,330.508 114.711,330.147 114.738,329.878C114.765,329.609 114.804,329.456 114.844,329.456L176.361,329.456C176.404,329.456 176.444,329.625 176.472,329.919C176.499,330.213 176.511,330.602 176.504,330.98C176.318,340.554 176.295,350.409 176.446,360.182C176.452,360.555 176.44,360.931 176.412,361.215C176.385,361.499 176.345,361.662 176.303,361.662ZM176.139,359.061C176.015,350.022 176.035,340.931 176.191,332.057C172.647,332.057 115.001,332.057 115.001,332.057C115.076,341.143 115.007,350.236 114.802,359.061L176.139,359.061Z" style="fill:rgb(5,75,159);"/>
</g>
<g transform="matrix(1.036,0.23923,-0.0865007,0.374596,-16.6075,98.5597)">
<path d="M117.078,330.756L172.417,330.756C171.947,340.383 172.006,350.349 172.66,360.361L117.606,360.361C117.983,350.708 117.828,340.743 117.078,330.756Z" style="fill:rgb(20,106,190);"/>
</g>
<g transform="matrix(1.036,0.23923,-0.0865007,0.374596,-16.6075,98.5597)">
<path d="M117.078,329.456L172.417,329.456C172.553,329.456 172.682,329.618 172.771,329.9C172.86,330.183 172.901,330.558 172.883,330.93C172.42,340.425 172.478,350.255 173.123,360.13C173.148,360.51 173.11,360.9 173.021,361.195C172.932,361.491 172.799,361.662 172.66,361.662L117.606,361.662C117.472,361.662 117.345,361.505 117.256,361.23C117.167,360.956 117.124,360.589 117.138,360.222C117.51,350.7 117.358,340.871 116.617,331.021C116.589,330.638 116.624,330.239 116.713,329.935C116.802,329.632 116.936,329.456 117.078,329.456ZM117.651,332.057C118.28,341.159 118.422,350.232 118.126,359.061C118.126,359.061 172.102,359.061 172.102,359.061C171.56,349.938 171.504,340.864 171.883,332.057L117.651,332.057Z" style="fill:rgb(5,75,159);"/>
</g>
<g transform="matrix(0.891455,-2.76001,0.365844,0.118164,-52.8187,518.104)">
<path d="M175.685,360.361L115.21,360.361C115.311,350.635 115.215,340.662 114.9,330.756L175.749,330.756C175.526,340.383 175.497,350.359 175.685,360.361Z" style="fill:rgb(20,106,190);"/>
</g>
<g transform="matrix(0.891455,-2.76001,0.365844,0.118164,-52.8187,518.104)">
<path d="M175.685,361.662L115.21,361.662C115.161,361.662 115.116,361.51 115.083,361.244C115.05,360.978 115.034,360.621 115.038,360.259C115.138,350.666 115.043,340.829 114.733,331.059C114.72,330.672 114.732,330.264 114.765,329.951C114.798,329.638 114.847,329.456 114.9,329.456L175.749,329.456C175.8,329.456 175.848,329.625 175.881,329.919C175.914,330.213 175.927,330.602 175.919,330.98C175.699,340.475 175.671,350.314 175.856,360.179C175.863,360.552 175.848,360.93 175.815,361.214C175.782,361.499 175.735,361.662 175.685,361.662ZM175.488,359.061C175.336,349.946 175.361,340.865 175.545,332.057C175.545,332.057 115.117,332.057 115.117,332.057C115.383,341.094 115.47,350.172 115.395,359.061L175.488,359.061Z" style="fill:rgb(5,75,159);"/>
</g>
<g transform="matrix(3.13548,-1.44294,0.160722,0.349247,-217.31,314.036)">
<path d="M174.941,360.361L115.971,360.361C116.331,350.612 116.506,340.628 116.509,330.756L175.008,330.756C174.811,340.66 174.793,350.644 174.941,360.361Z" style="fill:rgb(20,106,190);"/>
</g>
<g transform="matrix(3.13548,-1.44294,0.160722,0.349247,-217.31,314.036)">
<path d="M174.941,361.662L115.971,361.662C115.924,361.662 115.881,361.461 115.853,361.123C115.826,360.784 115.819,360.348 115.833,359.952C116.189,350.336 116.361,340.489 116.364,330.752C116.364,330.036 116.429,329.456 116.509,329.456L175.008,329.456C175.051,329.456 175.092,329.626 175.12,329.922C175.147,330.217 175.159,330.606 175.151,330.985C174.956,340.754 174.939,350.601 175.085,360.185C175.09,360.558 175.078,360.934 175.05,361.217C175.023,361.5 174.983,361.662 174.941,361.662ZM174.776,359.061C174.657,350.179 174.673,341.092 174.837,332.057C174.837,332.057 116.652,332.057 116.652,332.057C116.636,341.064 116.479,350.15 116.17,359.061L174.776,359.061Z" style="fill:rgb(5,75,159);"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

View file

@ -0,0 +1,2 @@
SPDX-FileCopyrightText: derived from https://github.com/eurosky-social/.github/blob/main/profile/logo.png by xje4@chaos.social
SPDX-License-Identifier: CC0-1.0

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-0.0620117 0.348442 87.9941 74.9653">
<path d="M41.9565 74.9643L24.0161 74.9653L41.9565 74.9643ZM63.8511 74.9653H45.9097L63.8501 74.9643V57.3286H63.8511V74.9653ZM45.9097 44.5893C45.9099 49.2737 49.7077 53.0707 54.3921 53.0707H63.8501V57.3286H54.3921C49.7077 57.3286 45.9099 61.1257 45.9097 65.81V74.9643H41.9565V65.81C41.9563 61.1258 38.1593 57.3287 33.4751 57.3286H24.0161V53.0707H33.4741C38.1587 53.0707 41.9565 49.2729 41.9565 44.5883V35.1303H45.9097V44.5893ZM63.8511 53.0707H63.8501V35.1303H63.8511V53.0707Z" fill="white"></path>
<path d="M52.7272 9.83198C49.4148 13.1445 49.4148 18.5151 52.7272 21.8275L59.4155 28.5158L56.4051 31.5262L49.7169 24.8379C46.4044 21.5254 41.0338 21.5254 37.7213 24.8379L31.2482 31.3111L28.4527 28.5156L34.9259 22.0424C38.2383 18.7299 38.2383 13.3594 34.9259 10.0469L28.2378 3.35883L31.2482 0.348442L37.9365 7.03672C41.2489 10.3492 46.6195 10.3492 49.932 7.03672L56.6203 0.348442L59.4155 3.14371L52.7272 9.83198Z" fill="white"/>
<path d="M24.3831 23.2335C23.1706 27.7584 25.8559 32.4095 30.3808 33.6219L39.5172 36.07L38.4154 40.182L29.2793 37.734C24.7544 36.5215 20.1033 39.2068 18.8909 43.7317L16.5215 52.5745L12.7028 51.5513L15.0721 42.7088C16.2846 38.1839 13.5993 33.5328 9.07434 32.3204L-0.0620117 29.8723L1.03987 25.76L10.1762 28.2081C14.7011 29.4206 19.3522 26.7352 20.5647 22.2103L23.0127 13.074L26.8311 14.0971L24.3831 23.2335Z" fill="white"/>
<path d="M67.3676 22.0297C68.5801 26.5546 73.2311 29.2399 77.756 28.0275L86.8923 25.5794L87.9941 29.6914L78.8578 32.1394C74.3329 33.3519 71.6476 38.003 72.86 42.5279L75.2294 51.3707L71.411 52.3938L69.0417 43.5513C67.8293 39.0264 63.1782 36.3411 58.6533 37.5535L49.5169 40.0016L48.415 35.8894L57.5514 33.4413C62.0763 32.2288 64.7616 27.5778 63.5492 23.0528L61.1011 13.9165L64.9195 12.8934L67.3676 22.0297Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,2 @@
SPDX-FileCopyrightText: https://commons.wikimedia.org/wiki/File:Blacksky_Algorithms_Logo.svg
SPDX-License-Identifier: CC0-1.0

View file

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 461 510" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,128.375,27.0069)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:white;"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:white;stroke-width:0.67px;"/>
</g>
</g>
<g>
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:white;"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:white;stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,67.5926,221.36)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:white;"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:white;stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,374.121,172.829)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:white;"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:white;stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,202.563,-210.015)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:white;"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:white;stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(1,0,0,1,380.732,-81.8617)">
<g transform="matrix(1.53024,0,0,1.53024,-36.1411,-154.896)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:white;"/>
</g>
<g transform="matrix(1.49162,0,0,1.49162,-34.2351,-144.687)">
<circle cx="49.353" cy="264.366" r="23.985" style="fill:none;stroke:white;stroke-width:0.67px;"/>
</g>
</g>
<g transform="matrix(0.759576,-2.35171,0.365844,0.118164,-102.007,679.384)">
<path d="M120.752,330.756L173.954,330.756C173.714,340.398 173.702,350.374 173.944,360.361L121.004,360.361C121.159,350.66 121.083,340.686 120.752,330.756Z" style="fill:white;"/>
</g>
<g transform="matrix(0.759576,-2.35171,0.365844,0.118164,-102.007,679.384)">
<path d="M120.752,329.456L173.954,329.456C174.013,329.456 174.07,329.623 174.108,329.912C174.147,330.202 174.163,330.586 174.154,330.962C173.917,340.472 173.905,350.31 174.144,360.161C174.153,360.536 174.136,360.919 174.098,361.207C174.06,361.496 174.003,361.662 173.944,361.662L121.004,361.662C120.946,361.662 120.892,361.506 120.853,361.233C120.815,360.959 120.796,360.594 120.802,360.228C120.955,350.659 120.881,340.822 120.554,331.029C120.542,330.645 120.557,330.244 120.595,329.939C120.633,329.633 120.691,329.456 120.752,329.456ZM121,332.057C121.278,341.113 121.347,350.192 121.226,359.061C121.226,359.061 173.71,359.061 173.71,359.061C173.512,349.957 173.521,340.877 173.719,332.057L121,332.057Z" style="fill:white;"/>
</g>
<g transform="matrix(2.99645,1.73569,-0.192701,0.332673,-79.3508,-17.2321)">
<path d="M176.303,360.361L114.623,360.361C114.865,350.716 114.943,340.724 114.844,330.756L176.361,330.756C176.173,340.462 176.15,350.453 176.303,360.361Z" style="fill:white;"/>
</g>
<g transform="matrix(2.99645,1.73569,-0.192701,0.332673,-79.3508,-17.2321)">
<path d="M176.303,361.662L114.623,361.662C114.579,361.662 114.537,361.482 114.51,361.173C114.482,360.864 114.472,360.46 114.482,360.074C114.721,350.56 114.798,340.703 114.701,330.871C114.697,330.508 114.711,330.147 114.738,329.878C114.765,329.609 114.804,329.456 114.844,329.456L176.361,329.456C176.404,329.456 176.444,329.625 176.472,329.919C176.499,330.213 176.511,330.602 176.504,330.98C176.318,340.554 176.295,350.409 176.446,360.182C176.452,360.555 176.44,360.931 176.412,361.215C176.385,361.499 176.345,361.662 176.303,361.662ZM176.139,359.061C176.015,350.022 176.035,340.931 176.191,332.057C172.647,332.057 115.001,332.057 115.001,332.057C115.076,341.143 115.007,350.236 114.802,359.061L176.139,359.061Z" style="fill:white;"/>
</g>
<g transform="matrix(1.036,0.23923,-0.0865007,0.374596,-16.6075,98.5597)">
<path d="M117.078,330.756L172.417,330.756C171.947,340.383 172.006,350.349 172.66,360.361L117.606,360.361C117.983,350.708 117.828,340.743 117.078,330.756Z" style="fill:white;"/>
</g>
<g transform="matrix(1.036,0.23923,-0.0865007,0.374596,-16.6075,98.5597)">
<path d="M117.078,329.456L172.417,329.456C172.553,329.456 172.682,329.618 172.771,329.9C172.86,330.183 172.901,330.558 172.883,330.93C172.42,340.425 172.478,350.255 173.123,360.13C173.148,360.51 173.11,360.9 173.021,361.195C172.932,361.491 172.799,361.662 172.66,361.662L117.606,361.662C117.472,361.662 117.345,361.505 117.256,361.23C117.167,360.956 117.124,360.589 117.138,360.222C117.51,350.7 117.358,340.871 116.617,331.021C116.589,330.638 116.624,330.239 116.713,329.935C116.802,329.632 116.936,329.456 117.078,329.456ZM117.651,332.057C118.28,341.159 118.422,350.232 118.126,359.061C118.126,359.061 172.102,359.061 172.102,359.061C171.56,349.938 171.504,340.864 171.883,332.057L117.651,332.057Z" style="fill:white;"/>
</g>
<g transform="matrix(0.891455,-2.76001,0.365844,0.118164,-52.8187,518.104)">
<path d="M175.685,360.361L115.21,360.361C115.311,350.635 115.215,340.662 114.9,330.756L175.749,330.756C175.526,340.383 175.497,350.359 175.685,360.361Z" style="fill:white;"/>
</g>
<g transform="matrix(0.891455,-2.76001,0.365844,0.118164,-52.8187,518.104)">
<path d="M175.685,361.662L115.21,361.662C115.161,361.662 115.116,361.51 115.083,361.244C115.05,360.978 115.034,360.621 115.038,360.259C115.138,350.666 115.043,340.829 114.733,331.059C114.72,330.672 114.732,330.264 114.765,329.951C114.798,329.638 114.847,329.456 114.9,329.456L175.749,329.456C175.8,329.456 175.848,329.625 175.881,329.919C175.914,330.213 175.927,330.602 175.919,330.98C175.699,340.475 175.671,350.314 175.856,360.179C175.863,360.552 175.848,360.93 175.815,361.214C175.782,361.499 175.735,361.662 175.685,361.662ZM175.488,359.061C175.336,349.946 175.361,340.865 175.545,332.057C175.545,332.057 115.117,332.057 115.117,332.057C115.383,341.094 115.47,350.172 115.395,359.061L175.488,359.061Z" style="fill:white;"/>
</g>
<g transform="matrix(3.13548,-1.44294,0.160722,0.349247,-217.31,314.036)">
<path d="M174.941,360.361L115.971,360.361C116.331,350.612 116.506,340.628 116.509,330.756L175.008,330.756C174.811,340.66 174.793,350.644 174.941,360.361Z" style="fill:white;"/>
</g>
<g transform="matrix(3.13548,-1.44294,0.160722,0.349247,-217.31,314.036)">
<path d="M174.941,361.662L115.971,361.662C115.924,361.662 115.881,361.461 115.853,361.123C115.826,360.784 115.819,360.348 115.833,359.952C116.189,350.336 116.361,340.489 116.364,330.752C116.364,330.036 116.429,329.456 116.509,329.456L175.008,329.456C175.051,329.456 175.092,329.626 175.12,329.922C175.147,330.217 175.159,330.606 175.151,330.985C174.956,340.754 174.939,350.601 175.085,360.185C175.09,360.558 175.078,360.934 175.05,361.217C175.023,361.5 174.983,361.662 174.941,361.662ZM174.776,359.061C174.657,350.179 174.673,341.092 174.837,332.057C174.837,332.057 116.652,332.057 116.652,332.057C116.636,341.064 116.479,350.15 116.17,359.061L174.776,359.061Z" style="fill:white;"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.2 KiB

View file

@ -0,0 +1,2 @@
SPDX-FileCopyrightText: derived from https://github.com/eurosky-social/.github/blob/main/profile/logo.png by xje4@chaos.social
SPDX-License-Identifier: CC0-1.0

View file

@ -111,7 +111,7 @@ class ContactSelector
*
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function networkToName(string $network, string $protocol = '', int $gsid = null): string
public static function networkToName(string $network, string $protocol = '', ?int $gsid = null): string
{
$eventDispatcher = DI::eventDispatcher();
@ -159,6 +159,11 @@ class ContactSelector
if ($platform !== '') {
$networkname = $platform;
}
} elseif ($network === Protocol::ATPROTO && !empty($gsid)) {
$gserver = self::getServerForId($gsid);
if (isset($gserver['url'])) {
$networkname = self::getAtProviderName($gserver['url']);
}
}
if (!empty($protocol) && ($protocol != $network) && $network != Protocol::DFRN) {
@ -184,7 +189,7 @@ class ContactSelector
* @param integer $uid
* @return string
*/
public static function networkToSVG(string $network, int $gsid = null, string $platform = '', int $uid = 0): string
public static function networkToSVG(string $network, ?int $gsid = null, string $platform = '', int $uid = 0): string
{
$platform_icon_style = $uid ? (DI::pConfig()->get($uid, 'accessibility', 'platform_icon_style') ?? self::SVG_COLOR_BLACK) : self::SVG_COLOR_BLACK;
@ -218,12 +223,15 @@ class ContactSelector
if (in_array($network, Protocol::FEDERATED) && !empty($gsid)) {
$gserver = self::getServerForId($gsid);
$platform = $gserver['platform'];
} elseif ($network === Protocol::ATPROTO && !empty($gsid)) {
$gserver = self::getServerForId($gsid);
$platform = self::getAtProtoProvider($gserver['url']);
}
$svg = ['aardwolf', 'activitypods', 'activitypub', 'akkoma', 'anfora', 'atprotocol', 'awakari', 'azorius',
'bluesky', 'bonfire', 'bookwyrm', 'bridgy_fed', 'brighteon_social', 'brutalinks', 'calckey',
'blacksky', 'bluesky', 'bonfire', 'bookwyrm', 'bridgy_fed', 'brighteon_social', 'brutalinks', 'calckey',
'castopod', 'catodon', 'chatter_net', 'chuckya', 'clubsall', 'communecter', 'decodon',
'diaspora', 'discourse', 'dolphin', 'drupal', 'email', 'emissary', 'epicyon', 'f2ap',
'diaspora', 'discourse', 'dolphin', 'drupal', 'email', 'emissary', 'epicyon', 'eurosky', 'f2ap',
'fedibird', 'fedify', 'firefish', 'flipboard', 'flohmarkt', 'forgefriends', 'forgejo',
'forte', 'foundkey', 'friendica', 'funkwhale', 'gancio', 'gath.io', 'ghost', 'gitlab',
'glitch-soc', 'glitchsoc', 'gnu_social', 'gnusocial', 'goblin', 'go-fed', 'gotosocial',
@ -238,8 +246,8 @@ class ContactSelector
'wildebeest', 'wordpress', 'write.as', 'writefreely', 'wxwclub', 'xwiki', 'zap'];
if (in_array($platform_icon_style, [self::SVG_WHITE, self::SVG_COLOR_WHITE])) {
$svg = ['activitypub', 'akkoma', 'andstatus', 'atprotocol', 'bluesky', 'bonfire', 'bookwyrm', 'bridgy_fed',
'calckey', 'castopod', 'diaspora', 'discourse', 'dolphin', 'drupal', 'email', 'firefish',
$svg = ['activitypub', 'akkoma', 'andstatus', 'atprotocol', 'blacksky', 'bluesky', 'bonfire', 'bookwyrm', 'bridgy_fed',
'calckey', 'castopod', 'diaspora', 'discourse', 'dolphin', 'drupal', 'email', 'eurosky', 'firefish',
'flipboard', 'flohmarkt', 'forgejo', 'friendica', 'funkwhale', 'ghost', 'gitlab',
'glitch-soc', 'gnusocial', 'gotosocial', 'guppe', 'hollo', 'hubzilla', 'iceshrimp', 'kbin',
'lemmy', 'loforo', 'loops', 'mastodon', 'mbin', 'microblog', 'minds', 'misskey', 'mobilizon',
@ -274,7 +282,7 @@ class ContactSelector
}
$color = ['aardwolf', 'activitypods', 'activitypub', 'akkoma', 'atprotocol', 'bluesky', 'chuckya', 'decodon',
'discourse', 'fedify', 'firefish', 'flipboard', 'friendica', 'gitlab', 'gnusocial', 'iceshrimp', 'kookie',
'discourse', 'eurosky', 'fedify', 'firefish', 'flipboard', 'friendica', 'gitlab', 'gnusocial', 'iceshrimp', 'kookie',
'loops', 'mastodon', 'mbin', 'misskey', 'neodb', 'newsmast', 'nodebb', 'peertube', 'pixelfed',
'pleroma', 'rss', 'sharky', 'tumblr', 'vervis', 'vocata', 'wordpress'];
@ -286,4 +294,35 @@ class ContactSelector
return 'images/platforms/black/' . $network_svg . '.svg';
}
}
private static function getAtProtoProvider(string $pds): string
{
$host = parse_url($pds, PHP_URL_HOST);
if (str_ends_with($host, '.host.bsky.network')) {
return 'bluesky';
} elseif ($host === 'fed.brid.gy') {
return 'bridgy_fed';
} elseif ($host === 'eurosky.social') {
return 'eurosky';
} elseif ($host === 'blacksky.app') {
return 'blacksky';
}
return 'atprotocol';
}
private static function getAtProviderName(string $pds): string
{
switch (self::getAtProtoProvider($pds)) {
case 'bluesky':
return 'Bluesky';
case 'bridgy_fed':
return 'Bridgy Fed';
case 'eurosky':
return 'Eurosky';
case 'blacksky':
return 'Blacksky';
default:
return parse_url($pds, PHP_URL_HOST);
}
}
}

View file

@ -39,7 +39,7 @@ class VCard
$contact_url = Contact::getProfileLink($contact);
if ($contact['network'] != '') {
$network_link = Strings::formatNetworkName($contact['network'], $contact_url);
$network_link = Strings::formatNetworkName($contact['network'], $contact_url, $contact['gsid']);
$network_svg = ContactSelector::networkToSVG($contact['network'], $contact['gsid'], '', DI::userSession()->getLocalUserId());
} else {
$network_link = '';

View file

@ -70,6 +70,7 @@ class GServer
public const DETECT_V1_CONFIG = 18;
public const DETECT_SYSTEM_ACTOR = 20; // Mistpark, Osada, Roadhouse, Zap
public const DETECT_THREADS = 21;
public const DETECT_ATPROTO_PDS = 22;
// Standardized endpoints
public const DETECT_STATISTICS_JSON = 100;
@ -714,6 +715,10 @@ class GServer
$serverdata['platform'] = 'threads';
}
if ($serverdata['network'] === Protocol::PHANTOM) {
$serverdata = self::detectATProto($url, $serverdata);
}
// All following checks are done for systems that always have got a "host-meta" endpoint.
// With this check we don't have to waste time and resources for dead systems.
// Also this hopefully prevents us from receiving abuse messages.
@ -1643,6 +1648,24 @@ class GServer
return $serverdata;
}
private static function detectATProto(string $url, array $serverdata): array
{
$data = DI::atProtocol()->get($url . '/xrpc/com.atproto.server.describeServer');
if (!isset($data->did)) {
return $serverdata;
}
$serverdata['detection-method'] = self::DETECT_ATPROTO_PDS;
$serverdata['network'] = Protocol::ATPROTO;
$serverdata['platform'] = 'atproto';
if (isset($data->inviteCodeRequired)) {
$serverdata['register_policy'] = Register::APPROVE;
}
return $serverdata;
}
/**
* Fetches server data via an ActivityPub account with url of that server
*

View file

@ -147,15 +147,16 @@ class Strings
*
* @param string $network Network name of the contact (e.g. dfrn, rss and so on)
* @param string $url The contact url
* @param int $gsid Server id
*
* @return string Formatted network name
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function formatNetworkName(string $network, string $url = ''): string
public static function formatNetworkName(string $network, string $url = '', ?int $gsid = null): string
{
if ($network != '') {
if ($url != '') {
$gsid = ContactSelector::getServerIdForProfile($url);
$gsid = $gsid ?? ContactSelector::getServerIdForProfile($url);
$network_name = '<a href="' . $url . '">' . ContactSelector::networkToName($network, '', $gsid) . '</a>';
} else {
$network_name = ContactSelector::networkToName($network);