173 lines
5.4 KiB
Plaintext
173 lines
5.4 KiB
Plaintext
package web
|
|
|
|
import "net/http"
|
|
|
|
import "git.arav.su/Arav/dwelling-home/pkg/util"
|
|
|
|
templ Stuff(r *http.Request) {
|
|
{{ gitSite := util.GetServiceByHost(r.Host, util.ServiceGit) }}
|
|
|
|
@base("Stuff", "Here I share my programs, scripts, articles, may be other stuff.", "articles, programs, personal projects, own music", "/stuff", r, nil) {
|
|
<p class="center">Here lies everything I've made that I'm willing to share.</p>
|
|
<section id="articles">
|
|
<h2>Articles</h2>
|
|
<table>
|
|
<tr>
|
|
<th>Last Update</th>
|
|
<th>Article</th>
|
|
</tr>
|
|
for _, entry := range Metadata {
|
|
<tr>
|
|
<td>
|
|
<time datetime={ entry.Date.Format("2006-01-02") }>{ entry.Date.Format("02 January 2006") }</time>
|
|
</td>
|
|
<td>
|
|
<a href={ templ.URL(entry.URL) }>{ entry.Title }</a>
|
|
</td>
|
|
</tr>
|
|
}
|
|
</table>
|
|
</section>
|
|
<section id="programs-scripts">
|
|
<h2>Programs and scripts</h2>
|
|
<table>
|
|
<tr>
|
|
<td><b>mccl</b></td>
|
|
<td>0.1.2 (14 December 2023)</td>
|
|
<td>Go</td>
|
|
<td>GPLv3</td>
|
|
<td>
|
|
<a href={ templ.URL(gitSite + "/Arav/mccl") }>source</a>
|
|
<a href={ templ.URL(gitSite + "/Arav/mccl/releases") }>releases</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="5">
|
|
<p>A console Minecraft launcher. Take a look at README.md for explanation.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>httpr</b></td>
|
|
<td>0.3.2 (20 September 2023)</td>
|
|
<td>Go</td>
|
|
<td>MIT</td>
|
|
<td>
|
|
<a href={ templ.URL(gitSite + "/Arav/httpr") }>source</a>
|
|
<a href={ templ.URL(gitSite + "/Arav/httpr/releases") }>releases</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="5">
|
|
<p>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.</p>
|
|
<p>Yeah, not as efficient as httprouter is, but in my case no performance loose was noticed (on a small amount of paths). Yet I gained prettiness because it allowed me, for example, to ditch <code>/f/</code> part and leave just <code>/:hash/:name</code> instead of <code>/f/:hash/:name</code> in a dwelling-upload service.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>justguestbook</b></td>
|
|
<td>1.3.2 (22 May 2023)</td>
|
|
<td>Go</td>
|
|
<td>MIT</td>
|
|
<td>
|
|
<a href={ templ.URL(gitSite + "/Arav/justguestbook") }>source</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="5">
|
|
<p>A simple guestbook with owner's replies implementation made into a library.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>justcaptcha</b></td>
|
|
<td>2.1.0 (12 August 2023)</td>
|
|
<td>Go</td>
|
|
<td>MIT</td>
|
|
<td>
|
|
<a href={ templ.URL(gitSite + "/Arav/justcaptcha") }>source</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="5">
|
|
<p>A simple CAPTCHA implementation.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>kwh-cost</b></td>
|
|
<td>1.1.3 (21 May 2024)</td>
|
|
<td>C</td>
|
|
<td>MIT+NIGGER</td>
|
|
<td>
|
|
<a href={ templ.URL(gitSite + "/Arav/kwh-cost") }>source</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="5">
|
|
<p>KWh cost calculator in C.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>httpprocprobed</b></td>
|
|
<td>3.1.1 (13 January 2024)</td>
|
|
<td>Go</td>
|
|
<td>MIT+NIGGER</td>
|
|
<td>
|
|
<a href={ templ.URL(gitSite + "/Arav/httpprocprobed") }>source</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="5">
|
|
<p>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.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>ScrapTheChan</b></td>
|
|
<td>0.5.0 (3 May 2021)</td>
|
|
<td>Python</td>
|
|
<td>MIT</td>
|
|
<td>
|
|
<a href={ templ.URL(gitSite + "/Arav/ScrapTheChan") }>source</a>
|
|
<a href={ templ.URL(gitSite + "/Arav/ScrapTheChan/releases") }>releases</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="5">
|
|
<p>Imageboards file scraper using theirs JSON API. Currently supported: 4chan.org, lainchan.org, 2ch.hk and 8kun.top.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>OpenNIC active domains extraction script</b></td>
|
|
<td>10 July 2020</td>
|
|
<td>Bash</td>
|
|
<td>MIT</td>
|
|
<td>
|
|
<a href={ templ.URL(gitSite + "/Arav/opennic-extract-domains") }>source</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="5">
|
|
<p>Bash script for BIND9 that extracts domains from zone files of OpenNIC and forms a list of domains that have an IP-address.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><b>PiggyBank</b></td>
|
|
<td>1.0.0 (8 July 2020)</td>
|
|
<td>Python</td>
|
|
<td>MIT</td>
|
|
<td>
|
|
<a href={ templ.URL(gitSite + "/Arav/PiggyBank") }>source</a>
|
|
<a href={ templ.URL(gitSite + "/Arav/PiggyBank/releases") }>releases</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="5">
|
|
<p>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.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</section>
|
|
<section id="music">
|
|
<h2>Music</h2>
|
|
<p>There was a period in my life when I was playing with audio sequencers. I lost all project files and only 3 tracks survived in mp3 and they <a href={ templ.URL(util.GetServiceByHost(r.Host, util.ServiceFiles) + "/music/My%20tracks,%20that%20survived/") }>can be found here</a>.</p>
|
|
</section>
|
|
}
|
|
}
|