178 lines
6.2 KiB
Plaintext
178 lines
6.2 KiB
Plaintext
package web
|
||
|
||
import "net/http"
|
||
|
||
import "github.com/invopop/ctxi18n/i18n"
|
||
|
||
import "git.arav.su/Arav/dwelling-home/pkg/util"
|
||
|
||
templ Stuff(r *http.Request) {
|
||
{{ gitSite := util.GetServiceByHost(r.Host, util.ServiceGit) }}
|
||
|
||
@base(i18n.T(ctx, "base.section.stuff"), i18n.T(ctx, "stuff.description"), "articles, programs, personal projects, own music", "/stuff", r, nil) {
|
||
<p class="center">{ i18n.T(ctx, "stuff.text") }</p>
|
||
<section id="articles">
|
||
<h2>{ i18n.T(ctx, "stuff.article.h") }</h2>
|
||
<table>
|
||
<tr>
|
||
<th>{ i18n.T(ctx, "stuff.article.tabh-lu") }</th>
|
||
<th>{ i18n.T(ctx, "stuff.article.tabh-nm") }</th>
|
||
</tr>
|
||
for _, entry := range Metadata {
|
||
<tr>
|
||
<td>
|
||
<time datetime={ entry.Date.Format("2006-01-02") }>{ entry.Date.Format("02.01.2006") }</time>
|
||
</td>
|
||
<td>
|
||
<a href={ templ.URL(entry.URL) }>{ entry.Title }</a>
|
||
</td>
|
||
</tr>
|
||
}
|
||
</table>
|
||
</section>
|
||
<section id="programs-scripts">
|
||
<h2>{ i18n.T(ctx, "stuff.progs") }</h2>
|
||
<table>
|
||
for _, prog := range programs {
|
||
<tr>
|
||
<td><b>{ prog.Name }</b></td>
|
||
<td>{ prog.Version }</td>
|
||
<td>{ prog.Lang }</td>
|
||
<td>{ prog.License }</td>
|
||
<td>
|
||
<a href={ templ.URL(gitSite + prog.SourceLink) }>source</a>
|
||
if prog.ReleasesLink != "" {
|
||
<a href={ templ.URL(gitSite + prog.ReleasesLink) }>releases</a>
|
||
}
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="5">
|
||
for _, line := range prog.Description[i18n.GetLocale(ctx).Code().String()] {
|
||
<p>@templ.Raw(line)</p>
|
||
}
|
||
</td>
|
||
</tr>
|
||
}
|
||
</table>
|
||
</section>
|
||
<section id="music">
|
||
<h2>{ i18n.T(ctx, "stuff.music.h") }</h2>
|
||
<p>{ i18n.T(ctx, "stuff.music.text-1") } <a href={ templ.URL(util.GetServiceByHost(r.Host, util.ServiceFiles) + "/music/My%20tracks,%20that%20survived/") }>{ i18n.T(ctx, "stuff.music.text-2") }</a>.</p>
|
||
</section>
|
||
}
|
||
}
|
||
|
||
type program struct {
|
||
Name string
|
||
Version string
|
||
Lang string
|
||
License string
|
||
SourceLink string
|
||
ReleasesLink string
|
||
Description map[string][]string
|
||
}
|
||
|
||
var programs []program = []program{
|
||
{
|
||
Name: "mccl",
|
||
Version: "0.1.2 (14.12.2023)",
|
||
Lang: "Go",
|
||
License: "GPLv3",
|
||
SourceLink: "/Arav/mccl",
|
||
ReleasesLink: "/Arav/mccl/releases",
|
||
Description: map[string][]string{
|
||
"en": {"A console Minecraft launcher. Take a look at README.md for explanation."},
|
||
"ru": {"Консольный лаунчер Minecraft. За подробностями в README.md."}},
|
||
},
|
||
{
|
||
Name: "httpr",
|
||
Version: "0.3.2 (20.09.2023)",
|
||
Lang: "Go",
|
||
License: "MIT",
|
||
SourceLink: "/Arav/httpr",
|
||
ReleasesLink: "/Arav/httpr/releases",
|
||
Description: map[string][]string{
|
||
"en": {
|
||
"A simple HTTP router that supports having both regular and parametrised path's parts at the same level, like <code>/assets/*filepath</code> and <code>/:a/:b</code> with the same HTTP method."},
|
||
"ru": {
|
||
"Простой HTTP роутер, который позволяет иметь на одном уровне и параметризованные и обычные пути, например, <code>/assets/*filepath</code> и <code>/:a/:b</code>."}},
|
||
},
|
||
{
|
||
Name: "justguestbook",
|
||
Version: "1.3.2 (22.05.2023)",
|
||
Lang: "Go",
|
||
License: "MIT",
|
||
SourceLink: "/Arav/justguestbook",
|
||
ReleasesLink: "",
|
||
Description: map[string][]string{
|
||
"en": {"A simple guestbook with owner's replies implementation made into a library."},
|
||
"ru": {"Простая гостевая книга в виде библиотеки с возможностью владельцу отвечать на посты."}},
|
||
},
|
||
{
|
||
Name: "justcaptcha",
|
||
Version: "2.1.0 (12.08.2023)",
|
||
Lang: "Go",
|
||
License: "MIT",
|
||
SourceLink: "/Arav/justcaptcha",
|
||
ReleasesLink: "",
|
||
Description: map[string][]string{
|
||
"en": {"A simple CAPTCHA implementation."},
|
||
"ru": {"Простая CAPTCHA."}},
|
||
},
|
||
{
|
||
Name: "kwh-cost",
|
||
Version: "1.1.3 (21.05.2024)",
|
||
Lang: "C",
|
||
License: "MIT+NIGGER",
|
||
SourceLink: "/Arav/kwh-cost",
|
||
ReleasesLink: "",
|
||
Description: map[string][]string{
|
||
"en": {"KWh cost calculator in C."},
|
||
"ru": {"Калькулятор стоимости кВтч на C."}},
|
||
},
|
||
{
|
||
Name: "httpprocprobed",
|
||
Version: "3.2.0 (7.07.2024)",
|
||
Lang: "Go",
|
||
License: "MIT+NIGGER",
|
||
SourceLink: "/Arav/httpprocprobed",
|
||
ReleasesLink: "",
|
||
Description: map[string][]string{
|
||
"en": {"It returns a list of processes and if they are running in a JSON format via HTTP GET request on <code>/processes</code> endpoint. Under the hood it searches in a /proc/ directory. It is being used on about page to show wether service's running or not."},
|
||
"ru": {"Возвращает JSON список процессов и запущены ли они. Процессы ищет считывая директорию <code>/proc/</code>. Использую на странице О... для показа статуса сервиса."}},
|
||
},
|
||
{
|
||
Name: "ScrapTheChan",
|
||
Version: "0.5.0 (3.05.2021)",
|
||
Lang: "Python",
|
||
License: "MIT",
|
||
SourceLink: "/Arav/ScrapTheChan",
|
||
ReleasesLink: "/Arav/ScrapTheChan/releases",
|
||
Description: map[string][]string{
|
||
"en": {"Imageboards file scraper using theirs JSON API. Currently supported: 4chan.org, lainchan.org, 2ch.hk and 8kun.top."},
|
||
"ru": {"Граббер файлов с имиджборд используя их JSON API. Работает с: 4chan.org, lainchan.org, 2ch.hk and 8kun.top."}},
|
||
},
|
||
{
|
||
Name: "OpenNIC active domains extraction script",
|
||
Version: "10.07.2020",
|
||
Lang: "Bash",
|
||
License: "MIT",
|
||
SourceLink: "/Arav/opennic-extract-domains",
|
||
ReleasesLink: "",
|
||
Description: map[string][]string{
|
||
"en": {"Bash script for BIND9 that extracts domains from zone files of OpenNIC and forms a list of domains that have an IP-address."},
|
||
"ru": {"Баш-скрипт для BIND9 извлекает домены OpenNIC у которых прописан IP-адрес."}},
|
||
},
|
||
{
|
||
Name: "PiggyBank",
|
||
Version: "1.0.0 (8.07.2020)",
|
||
Lang: "Python",
|
||
License: "MIT",
|
||
SourceLink: "/Arav/PiggyBank",
|
||
ReleasesLink: "/Arav/PiggyBank/releases",
|
||
Description: map[string][]string{
|
||
"en": {"A program to help you to keep track of your piggy bank. A simple script I once wrote that I rewrote and made into a package just to learn how to do it."},
|
||
"ru": {"Это просто копилка."}},
|
||
},
|
||
} |