Compare commits

...

1 Commits

Author SHA1 Message Date
stupidcomputer e26b3cdfbc add a vanity page of sorts 2024-10-09 10:46:22 -05:00
10 changed files with 687 additions and 7 deletions

View File

@ -1,19 +1,34 @@
from flask import Flask
from flask import request
from flask import redirect
from flask import abort
from flask import Flask, request, redirect, abort, render_template
import requests
from .webgit import Gitea, Github
from .utils import issue_sentinel, generate_sentinel, create_signature
app = Flask(__name__)
app = Flask(
__name__,
static_url_path="/bridge/static",
static_folder="./static"
)
app.config.from_envvar('GIT_BRIDGE_SETTINGS')
@app.route("/bridge")
def index():
return "you've reached the main page for an internal service. congrats!"
gitea = Gitea(
api_token=app.config["GITEA_ACCESS_TOKEN"],
instance_name=app.config["GITEA_INSTANCE_DOMAIN"],
)
repos = gitea.get_user_repos().json()
output = []
for repo in repos:
if not repo["private"]:
output.append({
"name": repo["name"],
"desc": repo["description"],
"url": repo["html_url"],
})
return render_template("index.html", repos=output)
@app.route("/bridge/endpoints/gitea/repo", methods=["POST"])
def gitea_handle_repo_action():

151
bridge/static/logo.svg Normal file
View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="100mm"
height="100mm"
viewBox="0 0 100 100"
version="1.1"
id="svg1"
xml:space="preserve"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="logo.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="0.92381453"
inkscape:cx="361.0032"
inkscape:cy="323.65804"
inkscape:window-width="1920"
inkscape:window-height="1080"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs1"><pattern
inkscape:collect="always"
xlink:href="#pattern2853"
id="pattern2864"
patternTransform="translate(42.23939,37.38575)" /><pattern
inkscape:collect="always"
xlink:href="#pattern2838"
id="pattern2845"
patternTransform="translate(44.04167,18.04166)" /><linearGradient
id="linearGradient2826"><stop
style="stop-color:#dfb585;stop-opacity:1;"
offset="0"
id="stop2828" /><stop
style="stop-color:black;stop-opacity:1;"
offset="1"
id="stop2830" /></linearGradient><linearGradient
id="linearGradient2791"><stop
style="stop-color:#4d95ee;stop-opacity:1;"
offset="0"
id="stop2793" /><stop
style="stop-color:black;stop-opacity:1;"
offset="1"
id="stop2795" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2791"
id="linearGradient2797"
x1="213.11461"
y1="113.20445"
x2="213.11461"
y2="351.95709"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,6)" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2826"
id="linearGradient2832"
x1="193.60881"
y1="116.54642"
x2="193.60881"
y2="345.21436"
gradientUnits="userSpaceOnUse" /><pattern
patternUnits="userSpaceOnUse"
width="31.916666"
height="9.916667"
patternTransform="translate(19.375,-47.29167)"
id="pattern2838"><rect
y="0.625"
x="0.625"
height="8.666667"
width="30.666666"
id="rect2836"
style="opacity:1;fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /></pattern><pattern
patternUnits="userSpaceOnUse"
width="34.958335"
height="9.916667"
patternTransform="translate(44.04167,18.04167)"
id="pattern2853"><g
id="g2849"
transform="translate(-44.04167,-18.04167)"><rect
style="fill:url(#pattern2845);stroke:none"
width="31.916666"
height="9.916667"
x="44.041668"
y="18.041666"
id="rect2841" /><rect
style="opacity:0;fill:#00cd0f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2847"
width="9.166667"
height="2.5833333"
x="69.833336"
y="21.916666" /></g></pattern></defs><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><g
id="g4"
transform="matrix(0.15875,0,0,0.15875,-3.8018304,-0.36145313)"> <path
id="teabag"
style="fill:#ffffff"
d="M 395.9,484.2 269,423.2 c -12.5,-6 -17.9,-21.2 -11.8,-33.8 l 61,-126.9 c 6,-12.5 21.2,-17.9 33.8,-11.8 17.2,8.3 27.1,13 27.1,13 l -0.1,-109.2 16.7,-0.1 0.1,117.1 c 0,0 57.4,24.2 83.1,40.1 3.7,2.3 10.2,6.8 12.9,14.4 2.1,6.1 2,13.1 -1,19.3 l -61,126.9 c -6.2,12.7 -21.4,18.1 -33.9,12 z" /> <g
id="g3"
transform="translate(-3.8,-19.6)"> <g
id="g2"> <path
style="fill:#609926"
d="m 622.7,149.8 c -4.1,-4.1 -9.6,-4 -9.6,-4 0,0 -117.2,6.6 -177.9,8 -13.3,0.3 -26.5,0.6 -39.6,0.7 0,39.1 0,78.2 0,117.2 -5.5,-2.6 -11.1,-5.3 -16.6,-7.9 0,-36.4 -0.1,-109.2 -0.1,-109.2 -29,0.4 -89.2,-2.2 -89.2,-2.2 0,0 -141.4,-7.1 -156.8,-8.5 -9.8,-0.6 -22.5,-2.1 -39,1.5 -8.7,1.8 -33.5,7.4 -53.8,26.9 -45,40.1 -33.5,103.9 -32.1,113.5 1.7,11.7 6.9,44.2 31.7,72.5 45.8,56.1 144.4,54.8 144.4,54.8 0,0 12.1,28.9 30.6,55.5 25,33.1 50.7,58.9 75.7,62 63,0 188.9,-0.1 188.9,-0.1 0,0 12,0.1 28.3,-10.3 14,-8.5 26.5,-23.4 26.5,-23.4 0,0 12.9,-13.8 30.9,-45.3 5.5,-9.7 10.1,-19.1 14.1,-28 0,0 55.2,-117.1 55.2,-231.1 -1.1,-34.5 -9.6,-40.6 -11.6,-42.6 z M 125.6,353.9 c -25.9,-8.5 -36.9,-18.7 -36.9,-18.7 0,0 -19.1,-13.4 -28.7,-39.8 -16.5,-44.2 -1.4,-71.2 -1.4,-71.2 0,0 8.4,-22.5 38.5,-30 13.8,-3.7 31,-3.1 31,-3.1 0,0 7.1,59.4 15.7,94.2 7.2,29.2 24.8,77.7 24.8,77.7 0,0 -26.1,-3.1 -43,-9.1 z m 300.3,107.6 c 0,0 -6.1,14.5 -19.6,15.4 -5.8,0.4 -10.3,-1.2 -10.3,-1.2 0,0 -0.3,-0.1 -5.3,-2.1 l -112.9,-55 c 0,0 -10.9,-5.7 -12.8,-15.6 -2.2,-8.1 2.7,-18.1 2.7,-18.1 L 322,273 c 0,0 4.8,-9.7 12.2,-13 0.6,-0.3 2.3,-1 4.5,-1.5 8.1,-2.1 18,2.8 18,2.8 L 467.4,315 c 0,0 12.6,5.7 15.3,16.2 1.9,7.4 -0.5,14 -1.8,17.2 -6.3,15.4 -55,113.1 -55,113.1 z"
id="path1" /> <path
style="fill:#609926"
d="m 326.8,380.1 c -8.2,0.1 -15.4,5.8 -17.3,13.8 -1.9,8 2,16.3 9.1,20 7.7,4 17.5,1.8 22.7,-5.4 5.1,-7.1 4.3,-16.9 -1.8,-23.1 l 24,-49.1 c 1.5,0.1 3.7,0.2 6.2,-0.5 4.1,-0.9 7.1,-3.6 7.1,-3.6 4.2,1.8 8.6,3.8 13.2,6.1 4.8,2.4 9.3,4.9 13.4,7.3 0.9,0.5 1.8,1.1 2.8,1.9 1.6,1.3 3.4,3.1 4.7,5.5 1.9,5.5 -1.9,14.9 -1.9,14.9 -2.3,7.6 -18.4,40.6 -18.4,40.6 -8.1,-0.2 -15.3,5 -17.7,12.5 -2.6,8.1 1.1,17.3 8.9,21.3 7.8,4 17.4,1.7 22.5,-5.3 5,-6.8 4.6,-16.3 -1.1,-22.6 1.9,-3.7 3.7,-7.4 5.6,-11.3 5,-10.4 13.5,-30.4 13.5,-30.4 0.9,-1.7 5.7,-10.3 2.7,-21.3 -2.5,-11.4 -12.6,-16.7 -12.6,-16.7 -12.2,-7.9 -29.2,-15.2 -29.2,-15.2 0,0 0,-4.1 -1.1,-7.1 -1.1,-3.1 -2.8,-5.1 -3.9,-6.3 4.7,-9.7 9.4,-19.3 14.1,-29 -4.1,-2 -8.1,-4 -12.2,-6.1 -4.8,9.8 -9.7,19.7 -14.5,29.5 -6.7,-0.1 -12.9,3.5 -16.1,9.4 -3.4,6.3 -2.7,14.1 1.9,19.8 -8.2,16.8 -16.4,33.6 -24.6,50.4 z"
id="path2" /> </g> </g> </g><g
id="g1"
transform="matrix(0.50182484,0,0,0.35249319,-51.630035,18.972095)"><path
id="path2799"
style="fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="m 341.66665,225.23539 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 L 418.05691,30.666667 H -18.056812 L -47.00002,120.00004 c 0,-29.072012 23.594674,-52.666688 52.666691,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535 m 24.222179,0 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535 m 24.22219,0 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535"
sodipodi:nodetypes="cssccccssccsssccsssc" /><path
style="opacity:0.7;fill:url(#linearGradient2797);fill-opacity:1;fill-rule:evenodd;stroke:#447cc1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m -6.6627813,217.65413 c 0,-28.37004 -13.1115797,-86.58823 0.4458511,-86.32344 84.6560832,1.65344 142.3439102,8.5 158.4814802,9.29365 32.27513,1.5873 58.20106,-4.23281 97.8836,-6.34921 39.68254,-2.1164 74.60317,3.70371 107.93651,3.17461 33.33333,-0.52911 37.43386,-3.96826 49.73545,-2.64551 24.08055,2.58931 3.8201,42.09524 3.8201,86.01059"
id="path1884"
sodipodi:nodetypes="csssssc" /><path
style="fill:url(#linearGradient2832);fill-opacity:1;fill-rule:evenodd;stroke:#784e1f;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 421.31443,97.523845 c 0,45.301975 0.5609,104.044905 0.5609,134.045145 -16.37801,0 -353.393449,-0.38532 -443.099849,-0.38532 0,-56.46314 2.984043,-109.38808 2.984043,-131.793769 18.28607177,11.882619 77.988729,47.037439 100.205554,47.891979 20.738622,0.25077 67.905562,22.79584 87.636022,28.15857 27.56341,2.34862 53.84138,-12.31897 81.50416,-8.10339 24.90771,1.58959 53.62348,2.5399 72.71854,-17.45229 15.32619,-12.89213 35.5339,-14.37299 53.87064,-18.56564 13.90946,-6.12504 36.38842,-20.82213 43.61999,-33.795285 z"
id="path1875"
sodipodi:nodetypes="cccccccccc" /><rect
style="opacity:1;fill:url(#pattern2864);fill-opacity:1;fill-rule:nonzero;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2834"
width="445.33334"
height="10"
x="-24.468958"
y="17.34409" /></g></g><metadata
id="metadata1"><rdf:RDF><cc:Work
rdf:about=""><cc:license
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata></svg>

After

Width:  |  Height:  |  Size: 10 KiB

130
bridge/static/main.css Normal file
View File

@ -0,0 +1,130 @@
:root { /* stolen from gitea */
--bg-color: rgb(32, 36, 48);
--lighter-bg: rgb(48, 51, 64);
--top-bar: rgb(35, 40, 52);
--reg-text: rgb(203, 208, 218);
--links: rgb(135, 171, 99);
--border-color: rgb(82, 87, 103);
--fonts-regular: -apple-system, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla"
}
div#navbar {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
background-color: var(--top-bar);
border-style: solid;
border-width: 0px 0px 0.9px 0px;
border-bottom-color: var(--border-color);
gap: 0.5em;
padding-left: 0.5em;
}
div#container {
display: flex;
flex-direction: column;
margin-left: 0.5em;
margin-right: 0.5em;
margin-bottom: 0.5em;
padding: 0.25em;
gap: 0.5em;
}
img {
height: 3em;
}
.navelem {
margin: 0.4em;
display: flex;
justify-content: center;
align-items: center;
}
body {
background-color: var(--bg-color);
color: var(--reg-text);
font-family: var(--fonts-regular);
margin: 0px;
display: flex;
flex-direction: column;
}
a {
color: var(--links);
text-decoration: none;
}
a:hover {
text-decoration: underline dotted;
}
.repodisplay {
display: flex;
flex-direction: row;
background-color: var(--lighter-bg);
padding: 0.5em;
border: 0.9px;
border-style: solid;
border-radius: 5px;
border-color: var(--border-color);
gap: 2px;
}
div.navelem {
padding-left: 0.5em;
padding-right: 0.5em;
border-radius: 5px;
}
div.navelem > a {
color: var(--reg-text);
}
div.navelem > a:hover {
text-decoration: none;
}
div.navelem:hover {
color: var(--reg-text);
background-color: rgba(255, 255, 255, 0.55);
}
#title {
font-size: 4em;
font-weight: 400;
text-align: center;
}
#small {
vertical-align: top;
}
#titlespan {
width: 100%;
padding-top: 0.5em;
}
.reponame {
font-size: 2em;
}
.mainrepoinfo {
display: flex;
flex-direction: column;
}
.repostatusarea {
margin-left: auto;
display: flex;
flex-direction: column;
}

View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<title>gitweb bridge</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta charset="UTF-8" />
<link rel="stylesheet" href="{{ url_for('static', filename='main.css') }}">
</head>
<body>
<div id="navbar">
<div class="navelem">
<a href="/bridge">
<img src="{{ url_for('static', filename='logo.svg') }}" />
</a>
</div>
<div class="navelem">
<a href="/">Back to Gitea</a>
</div>
</div>
<div id="container">
{% block content %}{% endblock %}
</div>
</body>
</html>

View File

@ -0,0 +1,26 @@
{% extends 'base.html' %}
{% block content %}
<div id="titlespan">
<span id="title">bridge</span> <span id="small"><a href="https://git.beepboop.systems/stupidcomputer/gitea-github-sync"><i>[what is this?]</i></a></span>
</div>
{% for repo in repos %}
<div class="repodisplay">
<div class="mainrepoinfo">
<a href="{{ repo.url }}"><span class="reponame">{{ repo.name }}</span></a>
<span class="repodescription"><i>{{ repo.desc }}</i></span>
</div>
<div class="repostatusarea">
<span class="repostatus">active</span>
<a href="/bridge/{{ repo.name }}">[status]</a>
</div>
</div>
{% endfor %}
{% endblock %}

View File

@ -36,6 +36,8 @@ class WebgitClient:
self._post_request(r)
return r
def get(self, *args, **kwargs):
return self._request_wrapper("GET", *args, **kwargs)
def post(self, *args, **kwargs):
return self._request_wrapper("POST", *args, **kwargs)
@ -192,3 +194,8 @@ class Gitea(WebgitClient):
"type": "gitea",
},
)
def get_user_repos(self):
return self.get(
self.api_prefix + "/user/repos"
)

167
icon/Bridge_drawing.svg Normal file
View File

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.44"
width="400"
height="200"
version="1.0"
sodipodi:docbase="D:\wiki_svg"
sodipodi:docname="Bridgedrawing.png.svg">
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs5">
<pattern
inkscape:collect="always"
xlink:href="#pattern2853"
id="pattern2864"
patternTransform="translate(42.23939,37.38575)" />
<pattern
inkscape:collect="always"
xlink:href="#pattern2838"
id="pattern2845"
patternTransform="translate(44.04167,18.04166)" />
<linearGradient
id="linearGradient2826">
<stop
style="stop-color:#dfb585;stop-opacity:1;"
offset="0"
id="stop2828" />
<stop
style="stop-color:black;stop-opacity:1;"
offset="1"
id="stop2830" />
</linearGradient>
<linearGradient
id="linearGradient2791">
<stop
style="stop-color:#4d95ee;stop-opacity:1;"
offset="0"
id="stop2793" />
<stop
style="stop-color:black;stop-opacity:1;"
offset="1"
id="stop2795" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2791"
id="linearGradient2797"
x1="213.11461"
y1="113.20445"
x2="213.11461"
y2="351.95709"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,6)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2826"
id="linearGradient2832"
x1="193.60881"
y1="116.54642"
x2="193.60881"
y2="345.21436"
gradientUnits="userSpaceOnUse" />
<pattern
patternUnits="userSpaceOnUse"
width="31.916666"
height="9.916667"
patternTransform="translate(19.375,-47.29167)"
id="pattern2838">
<rect
y="0.625"
x="0.625"
height="8.666667"
width="30.666666"
id="rect2836"
style="opacity:1;fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</pattern>
<pattern
patternUnits="userSpaceOnUse"
width="34.958335"
height="9.916667"
patternTransform="translate(44.04167,18.04167)"
id="pattern2853">
<g
id="g2849"
transform="translate(-44.04167,-18.04167)">
<rect
style="fill:url(#pattern2845);stroke:none"
width="31.916666"
height="9.916667"
x="44.041668"
y="18.041666"
id="rect2841" />
<rect
style="opacity:0;fill:#00cd0f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2847"
width="9.166667"
height="2.5833333"
x="69.833336"
y="21.916666" />
</g>
</pattern>
</defs>
<sodipodi:namedview
inkscape:window-height="632"
inkscape:window-width="853"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showborder="true"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:zoom="0.1875"
inkscape:cx="173.32657"
inkscape:cy="364.01333"
inkscape:window-x="3"
inkscape:window-y="60"
inkscape:current-layer="svg2" />
<path
id="path2799"
style="fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.2500006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="M 341.66665,225.23539 C 341.66665,212.34027 341.66665,134.53605 341.66665,120.00004 C 341.66665,90.928028 365.26132,67.333352 394.33334,67.333352 C 423.40535,67.333352 447.00002,90.928028 447.00002,120.00004 L 418.05691,30.666667 L -18.056812,30.666667 L -47.00002,120.00004 C -47.00002,90.928028 -23.405346,67.333352 5.666671,67.333352 C 34.738681,67.333352 58.333351,90.928028 58.333351,120.00004 C 58.333351,134.53605 58.333351,212.94015 58.333351,225.23539 M 82.55553,225.23539 C 82.55553,212.34027 82.55553,134.53605 82.55553,120.00004 C 82.55553,90.928028 106.1502,67.333352 135.22222,67.333352 C 164.29423,67.333352 187.8889,90.928028 187.8889,120.00004 C 187.8889,134.53605 187.8889,212.94015 187.8889,225.23539 M 212.11109,225.23539 C 212.11109,212.34027 212.11109,134.53605 212.11109,120.00004 C 212.11109,90.928028 235.70576,67.333352 264.77778,67.333352 C 293.84979,67.333352 317.44446,90.928028 317.44446,120.00004 C 317.44446,134.53605 317.44446,212.94015 317.44446,225.23539"
sodipodi:nodetypes="cssccccssccsssccsssc" />
<path
style="opacity:0.7;fill:url(#linearGradient2797);fill-opacity:1;fill-rule:evenodd;stroke:#447cc1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M -6.6627813,217.65413 C -6.6627813,189.28409 -19.774361,131.0659 -6.2169302,131.33069 C 78.439153,132.98413 136.12698,139.83069 152.26455,140.62434 C 184.53968,142.21164 210.46561,136.39153 250.14815,134.27513 C 289.83069,132.15873 324.75132,137.97884 358.08466,137.44974 C 391.41799,136.92063 395.51852,133.48148 407.82011,134.80423 C 431.90066,137.39354 411.64021,176.89947 411.64021,220.81482"
id="path1884"
sodipodi:nodetypes="csssssc" />
<path
style="fill:url(#linearGradient2832);fill-opacity:1.0;fill-rule:evenodd;stroke:#784e1f;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 421.31443,97.523845 C 421.31443,142.82582 421.87533,201.56875 421.87533,231.56899 C 405.49732,231.56899 68.481881,231.18367 -21.224519,231.18367 C -21.224519,174.72053 -18.240476,121.79559 -18.240476,99.389901 C 0.045595773,111.27252 59.748253,146.42734 81.965078,147.28188 C 102.7037,147.53265 149.87064,170.07772 169.6011,175.44045 C 197.16451,177.78907 223.44248,163.12148 251.10526,167.33706 C 276.01297,168.92665 304.72874,169.87696 323.8238,149.88477 C 339.14999,136.99264 359.3577,135.51178 377.69444,131.31913 C 391.6039,125.19409 414.08286,110.497 421.31443,97.523845 z "
id="path1875"
sodipodi:nodetypes="cccccccccc" />
<rect
style="opacity:1;fill:url(#pattern2864);fill-opacity:1;fill-rule:nonzero;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2834"
width="445.33334"
height="10"
x="-24.468958"
y="17.34409" />
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

1
icon/Gitea_Logo.svg Normal file
View File

@ -0,0 +1 @@
<svg version="1.1" id="main_outline" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" style="enable-background:new 0 0 640 640;" xml:space="preserve" viewBox="5.67 143.05 628.65 387.55"> <g> <path id="teabag" style="fill:#FFFFFF" d="M395.9,484.2l-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5,21.2-17.9,33.8-11.8 c17.2,8.3,27.1,13,27.1,13l-0.1-109.2l16.7-0.1l0.1,117.1c0,0,57.4,24.2,83.1,40.1c3.7,2.3,10.2,6.8,12.9,14.4 c2.1,6.1,2,13.1-1,19.3l-61,126.9C423.6,484.9,408.4,490.3,395.9,484.2z"></path> <g> <g> <path style="fill:#609926" d="M622.7,149.8c-4.1-4.1-9.6-4-9.6-4s-117.2,6.6-177.9,8c-13.3,0.3-26.5,0.6-39.6,0.7c0,39.1,0,78.2,0,117.2 c-5.5-2.6-11.1-5.3-16.6-7.9c0-36.4-0.1-109.2-0.1-109.2c-29,0.4-89.2-2.2-89.2-2.2s-141.4-7.1-156.8-8.5 c-9.8-0.6-22.5-2.1-39,1.5c-8.7,1.8-33.5,7.4-53.8,26.9C-4.9,212.4,6.6,276.2,8,285.8c1.7,11.7,6.9,44.2,31.7,72.5 c45.8,56.1,144.4,54.8,144.4,54.8s12.1,28.9,30.6,55.5c25,33.1,50.7,58.9,75.7,62c63,0,188.9-0.1,188.9-0.1s12,0.1,28.3-10.3 c14-8.5,26.5-23.4,26.5-23.4s12.9-13.8,30.9-45.3c5.5-9.7,10.1-19.1,14.1-28c0,0,55.2-117.1,55.2-231.1 C633.2,157.9,624.7,151.8,622.7,149.8z M125.6,353.9c-25.9-8.5-36.9-18.7-36.9-18.7S69.6,321.8,60,295.4 c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5,38.5-30c13.8-3.7,31-3.1,31-3.1s7.1,59.4,15.7,94.2c7.2,29.2,24.8,77.7,24.8,77.7 S142.5,359.9,125.6,353.9z M425.9,461.5c0,0-6.1,14.5-19.6,15.4c-5.8,0.4-10.3-1.2-10.3-1.2s-0.3-0.1-5.3-2.1l-112.9-55 c0,0-10.9-5.7-12.8-15.6c-2.2-8.1,2.7-18.1,2.7-18.1L322,273c0,0,4.8-9.7,12.2-13c0.6-0.3,2.3-1,4.5-1.5c8.1-2.1,18,2.8,18,2.8 l110.7,53.7c0,0,12.6,5.7,15.3,16.2c1.9,7.4-0.5,14-1.8,17.2C474.6,363.8,425.9,461.5,425.9,461.5z"></path> <path style="fill:#609926" d="M326.8,380.1c-8.2,0.1-15.4,5.8-17.3,13.8c-1.9,8,2,16.3,9.1,20c7.7,4,17.5,1.8,22.7-5.4 c5.1-7.1,4.3-16.9-1.8-23.1l24-49.1c1.5,0.1,3.7,0.2,6.2-0.5c4.1-0.9,7.1-3.6,7.1-3.6c4.2,1.8,8.6,3.8,13.2,6.1 c4.8,2.4,9.3,4.9,13.4,7.3c0.9,0.5,1.8,1.1,2.8,1.9c1.6,1.3,3.4,3.1,4.7,5.5c1.9,5.5-1.9,14.9-1.9,14.9 c-2.3,7.6-18.4,40.6-18.4,40.6c-8.1-0.2-15.3,5-17.7,12.5c-2.6,8.1,1.1,17.3,8.9,21.3c7.8,4,17.4,1.7,22.5-5.3 c5-6.8,4.6-16.3-1.1-22.6c1.9-3.7,3.7-7.4,5.6-11.3c5-10.4,13.5-30.4,13.5-30.4c0.9-1.7,5.7-10.3,2.7-21.3 c-2.5-11.4-12.6-16.7-12.6-16.7c-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3c4.7-9.7,9.4-19.3,14.1-29 c-4.1-2-8.1-4-12.2-6.1c-4.8,9.8-9.7,19.7-14.5,29.5c-6.7-0.1-12.9,3.5-16.1,9.4c-3.4,6.3-2.7,14.1,1.9,19.8 C343.2,346.5,335,363.3,326.8,380.1z"></path> </g> </g> </g> </svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" width="560" height="162" fill="none" stroke="#000">
<clipPath id="c"><path d="m20,110q76,0 128-90 130,154 260,0 52,92 128,90"/></clipPath>
<path stroke-width="100" stroke-dasharray="1,9" clip-path="url(#c)"
d="m23,70h120m10,0h250m10,0h120"/>
<path stroke-width="10" d="m148,18v124m260,0V18"/>
<path stroke-width="2" d="m20,110q76,0 128-90 130,154 260,0 52,92 128,90H20m0,2h516"/>
</svg>

After

Width:  |  Height:  |  Size: 448 B

151
icon/logo.svg Normal file
View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="100mm"
height="100mm"
viewBox="0 0 100 100"
version="1.1"
id="svg1"
xml:space="preserve"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="logo.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="0.92381453"
inkscape:cx="361.0032"
inkscape:cy="323.65804"
inkscape:window-width="1920"
inkscape:window-height="1080"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs1"><pattern
inkscape:collect="always"
xlink:href="#pattern2853"
id="pattern2864"
patternTransform="translate(42.23939,37.38575)" /><pattern
inkscape:collect="always"
xlink:href="#pattern2838"
id="pattern2845"
patternTransform="translate(44.04167,18.04166)" /><linearGradient
id="linearGradient2826"><stop
style="stop-color:#dfb585;stop-opacity:1;"
offset="0"
id="stop2828" /><stop
style="stop-color:black;stop-opacity:1;"
offset="1"
id="stop2830" /></linearGradient><linearGradient
id="linearGradient2791"><stop
style="stop-color:#4d95ee;stop-opacity:1;"
offset="0"
id="stop2793" /><stop
style="stop-color:black;stop-opacity:1;"
offset="1"
id="stop2795" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2791"
id="linearGradient2797"
x1="213.11461"
y1="113.20445"
x2="213.11461"
y2="351.95709"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,6)" /><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2826"
id="linearGradient2832"
x1="193.60881"
y1="116.54642"
x2="193.60881"
y2="345.21436"
gradientUnits="userSpaceOnUse" /><pattern
patternUnits="userSpaceOnUse"
width="31.916666"
height="9.916667"
patternTransform="translate(19.375,-47.29167)"
id="pattern2838"><rect
y="0.625"
x="0.625"
height="8.666667"
width="30.666666"
id="rect2836"
style="opacity:1;fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /></pattern><pattern
patternUnits="userSpaceOnUse"
width="34.958335"
height="9.916667"
patternTransform="translate(44.04167,18.04167)"
id="pattern2853"><g
id="g2849"
transform="translate(-44.04167,-18.04167)"><rect
style="fill:url(#pattern2845);stroke:none"
width="31.916666"
height="9.916667"
x="44.041668"
y="18.041666"
id="rect2841" /><rect
style="opacity:0;fill:#00cd0f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2847"
width="9.166667"
height="2.5833333"
x="69.833336"
y="21.916666" /></g></pattern></defs><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><g
id="g4"
transform="matrix(0.15875,0,0,0.15875,-3.8018304,-0.36145313)"> <path
id="teabag"
style="fill:#ffffff"
d="M 395.9,484.2 269,423.2 c -12.5,-6 -17.9,-21.2 -11.8,-33.8 l 61,-126.9 c 6,-12.5 21.2,-17.9 33.8,-11.8 17.2,8.3 27.1,13 27.1,13 l -0.1,-109.2 16.7,-0.1 0.1,117.1 c 0,0 57.4,24.2 83.1,40.1 3.7,2.3 10.2,6.8 12.9,14.4 2.1,6.1 2,13.1 -1,19.3 l -61,126.9 c -6.2,12.7 -21.4,18.1 -33.9,12 z" /> <g
id="g3"
transform="translate(-3.8,-19.6)"> <g
id="g2"> <path
style="fill:#609926"
d="m 622.7,149.8 c -4.1,-4.1 -9.6,-4 -9.6,-4 0,0 -117.2,6.6 -177.9,8 -13.3,0.3 -26.5,0.6 -39.6,0.7 0,39.1 0,78.2 0,117.2 -5.5,-2.6 -11.1,-5.3 -16.6,-7.9 0,-36.4 -0.1,-109.2 -0.1,-109.2 -29,0.4 -89.2,-2.2 -89.2,-2.2 0,0 -141.4,-7.1 -156.8,-8.5 -9.8,-0.6 -22.5,-2.1 -39,1.5 -8.7,1.8 -33.5,7.4 -53.8,26.9 -45,40.1 -33.5,103.9 -32.1,113.5 1.7,11.7 6.9,44.2 31.7,72.5 45.8,56.1 144.4,54.8 144.4,54.8 0,0 12.1,28.9 30.6,55.5 25,33.1 50.7,58.9 75.7,62 63,0 188.9,-0.1 188.9,-0.1 0,0 12,0.1 28.3,-10.3 14,-8.5 26.5,-23.4 26.5,-23.4 0,0 12.9,-13.8 30.9,-45.3 5.5,-9.7 10.1,-19.1 14.1,-28 0,0 55.2,-117.1 55.2,-231.1 -1.1,-34.5 -9.6,-40.6 -11.6,-42.6 z M 125.6,353.9 c -25.9,-8.5 -36.9,-18.7 -36.9,-18.7 0,0 -19.1,-13.4 -28.7,-39.8 -16.5,-44.2 -1.4,-71.2 -1.4,-71.2 0,0 8.4,-22.5 38.5,-30 13.8,-3.7 31,-3.1 31,-3.1 0,0 7.1,59.4 15.7,94.2 7.2,29.2 24.8,77.7 24.8,77.7 0,0 -26.1,-3.1 -43,-9.1 z m 300.3,107.6 c 0,0 -6.1,14.5 -19.6,15.4 -5.8,0.4 -10.3,-1.2 -10.3,-1.2 0,0 -0.3,-0.1 -5.3,-2.1 l -112.9,-55 c 0,0 -10.9,-5.7 -12.8,-15.6 -2.2,-8.1 2.7,-18.1 2.7,-18.1 L 322,273 c 0,0 4.8,-9.7 12.2,-13 0.6,-0.3 2.3,-1 4.5,-1.5 8.1,-2.1 18,2.8 18,2.8 L 467.4,315 c 0,0 12.6,5.7 15.3,16.2 1.9,7.4 -0.5,14 -1.8,17.2 -6.3,15.4 -55,113.1 -55,113.1 z"
id="path1" /> <path
style="fill:#609926"
d="m 326.8,380.1 c -8.2,0.1 -15.4,5.8 -17.3,13.8 -1.9,8 2,16.3 9.1,20 7.7,4 17.5,1.8 22.7,-5.4 5.1,-7.1 4.3,-16.9 -1.8,-23.1 l 24,-49.1 c 1.5,0.1 3.7,0.2 6.2,-0.5 4.1,-0.9 7.1,-3.6 7.1,-3.6 4.2,1.8 8.6,3.8 13.2,6.1 4.8,2.4 9.3,4.9 13.4,7.3 0.9,0.5 1.8,1.1 2.8,1.9 1.6,1.3 3.4,3.1 4.7,5.5 1.9,5.5 -1.9,14.9 -1.9,14.9 -2.3,7.6 -18.4,40.6 -18.4,40.6 -8.1,-0.2 -15.3,5 -17.7,12.5 -2.6,8.1 1.1,17.3 8.9,21.3 7.8,4 17.4,1.7 22.5,-5.3 5,-6.8 4.6,-16.3 -1.1,-22.6 1.9,-3.7 3.7,-7.4 5.6,-11.3 5,-10.4 13.5,-30.4 13.5,-30.4 0.9,-1.7 5.7,-10.3 2.7,-21.3 -2.5,-11.4 -12.6,-16.7 -12.6,-16.7 -12.2,-7.9 -29.2,-15.2 -29.2,-15.2 0,0 0,-4.1 -1.1,-7.1 -1.1,-3.1 -2.8,-5.1 -3.9,-6.3 4.7,-9.7 9.4,-19.3 14.1,-29 -4.1,-2 -8.1,-4 -12.2,-6.1 -4.8,9.8 -9.7,19.7 -14.5,29.5 -6.7,-0.1 -12.9,3.5 -16.1,9.4 -3.4,6.3 -2.7,14.1 1.9,19.8 -8.2,16.8 -16.4,33.6 -24.6,50.4 z"
id="path2" /> </g> </g> </g><g
id="g1"
transform="matrix(0.50182484,0,0,0.35249319,-51.630035,18.972095)"><path
id="path2799"
style="fill:#7b6c52;fill-opacity:1;fill-rule:nonzero;stroke:#2d271e;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
d="m 341.66665,225.23539 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 L 418.05691,30.666667 H -18.056812 L -47.00002,120.00004 c 0,-29.072012 23.594674,-52.666688 52.666691,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535 m 24.222179,0 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535 m 24.22219,0 c 0,-12.89512 0,-90.69934 0,-105.23535 0,-29.072012 23.59467,-52.666688 52.66669,-52.666688 29.07201,0 52.66668,23.594676 52.66668,52.666688 0,14.53601 0,92.94011 0,105.23535"
sodipodi:nodetypes="cssccccssccsssccsssc" /><path
style="opacity:0.7;fill:url(#linearGradient2797);fill-opacity:1;fill-rule:evenodd;stroke:#447cc1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m -6.6627813,217.65413 c 0,-28.37004 -13.1115797,-86.58823 0.4458511,-86.32344 84.6560832,1.65344 142.3439102,8.5 158.4814802,9.29365 32.27513,1.5873 58.20106,-4.23281 97.8836,-6.34921 39.68254,-2.1164 74.60317,3.70371 107.93651,3.17461 33.33333,-0.52911 37.43386,-3.96826 49.73545,-2.64551 24.08055,2.58931 3.8201,42.09524 3.8201,86.01059"
id="path1884"
sodipodi:nodetypes="csssssc" /><path
style="fill:url(#linearGradient2832);fill-opacity:1;fill-rule:evenodd;stroke:#784e1f;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 421.31443,97.523845 c 0,45.301975 0.5609,104.044905 0.5609,134.045145 -16.37801,0 -353.393449,-0.38532 -443.099849,-0.38532 0,-56.46314 2.984043,-109.38808 2.984043,-131.793769 18.28607177,11.882619 77.988729,47.037439 100.205554,47.891979 20.738622,0.25077 67.905562,22.79584 87.636022,28.15857 27.56341,2.34862 53.84138,-12.31897 81.50416,-8.10339 24.90771,1.58959 53.62348,2.5399 72.71854,-17.45229 15.32619,-12.89213 35.5339,-14.37299 53.87064,-18.56564 13.90946,-6.12504 36.38842,-20.82213 43.61999,-33.795285 z"
id="path1875"
sodipodi:nodetypes="cccccccccc" /><rect
style="opacity:1;fill:url(#pattern2864);fill-opacity:1;fill-rule:nonzero;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2834"
width="445.33334"
height="10"
x="-24.468958"
y="17.34409" /></g></g><metadata
id="metadata1"><rdf:RDF><cc:Work
rdf:about=""><cc:license
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /></cc:Work><cc:License
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata></svg>

After

Width:  |  Height:  |  Size: 10 KiB