I HATE THE GIT! I HATE THE GIT!
This commit is contained in:
parent
aa22a2b536
commit
696a557026
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -138,3 +138,4 @@ dmypy.json
|
||||||
# Cython debug symbols
|
# Cython debug symbols
|
||||||
cython_debug/
|
cython_debug/
|
||||||
|
|
||||||
|
rakka.conf
|
0
main/__init__.py
Normal file
0
main/__init__.py
Normal file
3
main/admin.py
Normal file
3
main/admin.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
5
main/apps.py
Normal file
5
main/apps.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
class MainConfig(AppConfig):
|
||||||
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
|
name = 'main'
|
0
main/migrations/__init__.py
Normal file
0
main/migrations/__init__.py
Normal file
3
main/models.py
Normal file
3
main/models.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
# Create your models here.
|
24
main/pages/articles
Normal file
24
main/pages/articles
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
Nettiquette and misc:
|
||||||
|
http://www.nohello.com
|
||||||
|
https://nohello.net/
|
||||||
|
https://sol.gfxile.net/dontask.html
|
||||||
|
https://dontasktoask.com/
|
||||||
|
http://slash7.com/2006/12/22/vampires/
|
||||||
|
http://xyproblem.info/
|
||||||
|
https://ncase.me/ballot
|
||||||
|
https://digdeeper.neocities.org/ghost/email.html
|
||||||
|
http://www.kanjidamage.com
|
||||||
|
https://innermantheatre.com/2021/03/29/lightspeed-lab-homosexuality/,The Christian stance on homosexuality in 3 panels
|
||||||
|
https://archive.secondspring.co.uk/articles/borruso.htm
|
||||||
|
|
||||||
|
Computers and languages are hard:
|
||||||
|
http://www.zompist.com/yingzi/yingzi.htm
|
||||||
|
https://gankra.github.io/blah/text-hates-you/
|
||||||
|
https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
|
||||||
|
https://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time
|
||||||
|
https://infiniteundo.com/post/25509354022/more-falsehoods-programmers-believe-about-time
|
||||||
|
https://eev.ee/blog/2015/09/12/dark-corners-of-unicode/
|
||||||
|
https://faculty.georgetown.edu/jod/texts/twain.german.html,Languages are angry
|
||||||
|
|
||||||
|
Otome! And maybe other game design:
|
||||||
|
https://uguucageoflove.wordpress.com/2020/05/17/preferences-of-otome-gamers-a-survey-of-japanese-players/
|
60
main/pages/contacts
Normal file
60
main/pages/contacts
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
Preferred:
|
||||||
|
zergling@rakka.tk,Email,mailto:zergling@rakka.tk,TODO
|
||||||
|
zergling_man@disroot.org,Email,mailto:zergling_man@disroot.org,Pending approval
|
||||||
|
Zergling_man@pod.rakka.tk,Diaspora,,No idea what I'm doing with this yet.
|
||||||
|
Zergling_man@rakka.tk,XMPP,xmpp:Zergling_man@rakka.tk,Not federating for some reason
|
||||||
|
<a rel='me' href='https://mastodon.linuxbox.ninja/@Zergling_man'>@Zergling_man@mastodon.linuxbox.ninja</a>,Mastodon/fediverse
|
||||||
|
|
||||||
|
Suitable:
|
||||||
|
zerglingman@fedora.email,Email,mailto:zerglingman@fedora.email
|
||||||
|
zergling@email.go.brr.rakka.tk,Email,mailto:zergling@email.go.brr.rakka.tk,"Backup account. <strong>Save this!</strong>
|
||||||
|
My comment box,Web,/comment,TODO
|
||||||
|
Zergling_man@irc.libera.chat,IRC
|
||||||
|
Zergling_man@irc.rizon.net,IRC
|
||||||
|
zerglingman,Steam,https://steamcommunity.com/id/zerglingman
|
||||||
|
@Zerglingman@freespeechextremist.com,Pleroma/fediverse,https://freespeechextremist.com/Zerglingman
|
||||||
|
@zergling.man:matrix.perthchat.org,Matrix,https://matrix.to/#/@zergling.man:matrix.perthchat.org,I kinda get it
|
||||||
|
|
||||||
|
Discouraged:
|
||||||
|
Zergling_man#9849,Discord
|
||||||
|
zergling.man42@gmail.com,Email,mailto:zergling.man42@gmail.com
|
||||||
|
Zergling_man@hotmail.com,Email,mailto:Zergling_man@hotmail.com
|
||||||
|
Zergling_man@irc.chat.twitch.tv,IRC,,yes, IRC
|
||||||
|
Wisknort@irc.mibbit.net,IRC
|
||||||
|
Zergling_man@irc.freenode.net,IRC
|
||||||
|
lazy to put,Codingame,,XMPP
|
||||||
|
Zergling_man,Mangadex,https://mangadex.org/user/419664/zergling_man
|
||||||
|
Wisknort,Favorite Words,https://favoritewords.com/public/7909804378
|
||||||
|
Wisknort,Disqus,https://disqus.com/by/wisknort/
|
||||||
|
<a rel='me' href='https://pawoo.net/@Zergling_man'>@Zergling_man@pawoo.net</a>,Mastodon/fediverse,,Mostly porn
|
||||||
|
@zergling_man@peertube.linuxrocks.online,Peertube/fediverse,https://peertube.linuxrocks.online/accounts/zergling_man/
|
||||||
|
zergling-man,Gitlab,https://gitlab.com/zergling-man
|
||||||
|
Curtis Smith,Patreon,https://www.patreon.com/user/creators?u=688598,I don't actually create anything
|
||||||
|
zergling-man,Github,https://github.com/zergling-man
|
||||||
|
zergling_man,Bandcamp,https://bandcamp.com/zergling_man
|
||||||
|
zerglingman,Facebook message,https://facebook.com/zerglingman
|
||||||
|
|
||||||
|
Ignored:
|
||||||
|
Zergling_man,Kickstarter,https://www.kickstarter.com/profile/zerglingman
|
||||||
|
04 7892 6251,Phone,tel:+61478926251
|
||||||
|
04 7320 1329,Phone,tel:+61473201329
|
||||||
|
Zerguch,Exhentai,,Don't search it if you don't know it
|
||||||
|
zerglingman,Facebook,https://facebook.com/zerglingman
|
||||||
|
@Zergling_man,Twitter,https://twitter.com/zergling_man
|
||||||
|
Wisknort@useast.battle.net,Battlenet 1.0,,probably dead
|
||||||
|
Wisknort@irc.gamesurge.net,IRC
|
||||||
|
Zergling_man@irc.quakenet.org,IRC
|
||||||
|
Zergling_man@irc.irchighway.net,IRC
|
||||||
|
zergling.man42@gmail.com,Hangouts
|
||||||
|
<a href='https://en.wikipedia.org/wiki/NakNak'>naknak</a>210,Neopets
|
||||||
|
zergling_man,Gelbooru,https://gelbooru.com/index.php?page=account&s=profile&id=286243,Content warning for site, not for kids
|
||||||
|
Zergling_man,XDA,https://forum.xda-developers.com/member.php?u=5421902,
|
||||||
|
@zergling_man,Ello,https://ello.co/zergling_man
|
||||||
|
zergling_man@hotmail.com,Skype
|
||||||
|
Curtis Smith,Linkedin,https://www.linkedin.com/in/curtis-smith-615538205/
|
||||||
|
|
||||||
|
Discontinued:
|
||||||
|
<a rel='me' href='https://openweb.social/@Zergling_man'>@Zergling_man@openweb.social</a>,Mastodon/fediverse,,Migrated to mastodon.linuxbox.ninja (see preferred)
|
||||||
|
Zerglingman,Xfire,,Rip btw
|
||||||
|
<a rel='me' href='https://social.quodverum.com/@Zergling_man'>@Zergling_man@social.quodverum.com</a>,Mastodon/fediverse,,Banned, no reason given. Quods is weird.
|
||||||
|
e1ff7b086b591c3bdc7cf74ffc46c38a023721c8386e46cf63ed3d7998020c6240d786bfa8a8,Tox
|
20
main/pages/free
Normal file
20
main/pages/free
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<h2>On moving away from mainstream/centralised/closed-source software</h2>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li><strong>"The software is inconvenient to use"</strong><br/>
|
||||||
|
This is frankly not true in many cases. It's because the software is not familiar that people say this. Though there are definitely cases where it is true, but those are things that can be worked on - and will be if there's more interest to drive it.<br/>
|
||||||
|
And, to be clear, it's often <em>more</em> convenient than mainstream software, in little ways you didn't even realise were possible.</li><br/>
|
||||||
|
<li><strong>"Not many people are using it"/"there isn't much content there"</strong><br/>
|
||||||
|
If you can't see why this is obviously stupid, your use of a (pocket) computer is probably a liability, and I recommend deleting all your online accounts, selling your (pocket) computer, and going back to doing things in person.<br/>
|
||||||
|
If the above is relevant to you and you haven't stopped reading to go off and <a href="/contact">write an angry email to me</a> for insulting your intelligence: Reminder that there was a time when Facebook, Twitter and YouTube were not used by many people, and look where they are now. How did they get there? <em>People started using them</em>. This isn't a real objection.</li><br/>
|
||||||
|
<li><strong>"It's difficult for my grandma/little cousin/etc. to use it"</strong><br/>
|
||||||
|
This one tends to crop up most in response to self-hosting things (eg. federated nodes). And while there is truth in the idea that not everyone needs to run their own software, everyone should at least consider it, and tech people should definitely offer their instance to their friends and family. Because it's actually not that hard to use. It just takes someone familiar with it to teach and answer questions. So maybe, instead of complaining on someone else's behalf, be a teacher.</li><br/>
|
||||||
|
<li><strong>"It's less reliable"</strong><br/>
|
||||||
|
No.<br/>
|
||||||
|
Major services have outages too. Sometimes beyond their control (remember that time <a href="https://blog.cloudflare.com/cloudflare-outage/">Cloudflare accidentally blew up their entire operation</a>? - I'm actually not sure that link refers to the right incident, the one I recall was closer to a day long). This is actually worse than the case of a single (or handful of) node(s) in a federated network going offline, because it affects the entire service instead of only one small part of it. It's true that nodes sometimes disappear permanently, and that this doesn't tend to happen with major, centralised services. But it does happen with <em>minor</em> centralised services. G+, anyone?<br/><a href='https://www.ovh.com/world/news/press/cpl1787.fire-our-strasbourg-site'>Oh yeah remember this</a></li>
|
||||||
|
</ol><br/>
|
||||||
|
Some other variants of these arguments:<br/>
|
||||||
|
"It's human nature to prefer convenience" -> So's stealing your brother's toys. Really, you're just lazy.<br/>
|
||||||
|
"You'll never get popular appeal" -> You aren't everyone. You're lazy.<br/>
|
||||||
|
<br/>
|
||||||
|
If you have some argument that isn't in the above list, read it again, because chances are I sent this to you to read the part where I already addressed it. But if it's actually not on the list, <a href='/contact'>fix that</a>.
|
11
main/pages/index
Normal file
11
main/pages/index
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<h2>Important announcement: <a href='https://letsencrypt.org/2020/11/06/own-two-feet.html'>this site will issue security warnings to android<7.1.1, and other very old systems, starting Sept 1st 2021</a>. I will not be doing anything to change this.</h2>
|
||||||
|
<h3>we back boiz</h3>
|
||||||
|
<audio controls><source src='https://invidious.ethibox.fr/latest_version?id={0}&itag=140'/>ababababa</audio>
|
||||||
|
<p>Rakka me takkas and riddly me diddlies.</p>
|
||||||
|
<p>Welcome back, Ike. Farewell, Sly.</p><br/>
|
||||||
|
<p>This site is hosted in Tasmania, AU, by zerglingman (a fedora.email user), a Van Canto fan<del>girl</del> boy. Also available on matrix as @zergling.man:matrix.perthchat.org, or on libera.chat as Zergling_man or Mastodon as <a rel='me' href='https://mastodon.linuxbox.ninja/@Zergling_man'>@Zergling_man@mastodon.linuxbox.ninja</a> (<a href='/contact.php'>and many other places</a>). <br/><a href='/me'>But who am I, really?</a></p>
|
||||||
|
<p>Who <del>can't figure out how SSL works. I'm working on it. got SSL working, I guess.</del> is figuring this SSL thing out, properly.</p>
|
||||||
|
<p><a href='/webhost.php'>Haha I'm way too lazy for webhosting</a></p>
|
||||||
|
<p>Cool games: <a href='http://www.fantasystrike.com'>Fantasy Strike</a> (<strong>gone free! Go play it now!</strong>), <a href='http://www.soldak.com/Dins-Curse/Overview.html'>Din's Curse</a> (dirt cheap!), <a href='https://mwomercs.com/'>Mechwarrior Online</a> (free!), <a href='https://www.wurmonline.com/'>Wurm Online</a> (free!), <a href='https://www.chiark.greenend.org.uk/~sgtatham/puzzles/'>Portable Puzzle Collection</a> (free and open source! Also on <a href='https://f-droid.org/en/packages/name.boyle.chris.sgtpuzzles/'>android</a>!)</p>
|
||||||
|
<p>Cool bands: <a href='https://vancanto.de/en'>Van Canto</a> [<a href='https://vancanto.bandcamp.com/'>bandcamp</a>] (who this site is a shrine to), <a href='https://theocracymusic.com/'>Theocracy</a> [<a href='https://ulteriumrecords.bandcamp.com/'>label's bandcamp</a>] (Christian prog metal!), <a href='https://teramaze.com.au/'>Teramaze</a> [<a href='https://teramaze.bandcamp.com/'>bandcamp</a>] (Australian Christian prog metal!)
|
||||||
|
<p><del><a href='https://www.bigr.com/whisker-snot-arrow-rest-weatherproofing/208374.html'>Wisknort. Whisker snot.</a></del> They changed their website and now it sucks.</p>
|
20
main/pages/myroidbrowse
Normal file
20
main/pages/myroidbrowse
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<h3>MCC in browser definitive (but not yet) guide</h3>
|
||||||
|
|
||||||
|
<h4>Part A: Getting a uuid</h4>
|
||||||
|
<p>If you don't want to share your phone login with the browser, just generate a uuid4. Should be tools online to do that for you.<br/>
|
||||||
|
If you do, wait until next maint, then select all text and look right down the bottom. It says something like agg:{idgoeshere}.<br/>
|
||||||
|
Or, skip this and parts B and C, and use a packet sniffer to collect the user agent directly. This will require a mitm proxy to decrypt the TLS packets, and that needs to be installed as a system certificate or MCC won't trust it (since android 7) and you'll get nothing at all. In short, this is hard and annoying, especialy without root (virtually impossible), so I don't really recommend it. It's also the only method that other guides offer.</p>
|
||||||
|
|
||||||
|
<h4>Part B: Token up</h4>
|
||||||
|
<p>AES encrypt the uuid. Use ECB encryption mode, set the secret key to 0123456789012345, and pad the uuid out to block size of 128, using PKCS5, or PKCS7 (they should be the same thing). You might be able to do this with an online tool, not sure.<br/>
|
||||||
|
Then base64 encode the result. Should be plenty of tools online to do that.
|
||||||
|
The result is your token.</p>
|
||||||
|
|
||||||
|
<h4>Part C: User agent</h4>
|
||||||
|
<p>Construct user agent string. Base form is {browser}/{country}/AMBITION_UA/GooglePlay/Android-/MOE_ver{ver}:{token}. Country appears to be ISO_3166-1 alpha-2. ver should be 30 currently (no idea when/how it increases, probably with each new client release).<br/>
|
||||||
|
Browser is... Whatever you want, really. If you want to try to pretend to be a real client, try something along the lines of "Mozilla/5.0 (Linux; Android 8.0.0; SHIFT6m Build/O00623; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Mobile Safari/537.36". If you don't, which does run the risk of a ban, just put something like "gimmedatmoe/9001".<br/>
|
||||||
|
Finished result should look something like this: TODO</p>
|
||||||
|
|
||||||
|
<h4>Part D: Browsing</h4>
|
||||||
|
<p>Use a user-agent switcher (get a plugin for it for your browser, lots of them out there) to set your user agent to that whole string above.<br/>
|
||||||
|
If it has the option for only doing it for some domains, set it to us-moe-app.amz-aws.jp. That's also where you will be going to play. If you got your user agent right, loading that URL should present you with the toppage ("see myroid"/"buy AP" page).</p>
|
4
main/pages/myroids
Normal file
4
main/pages/myroids
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<p>myroids! Stuff to come later.<br/>Game is Moe Can Change by Ambition.<br/>I'll be posting random tools I've written elsewhere in this folder soon. Probably I'll fix them up first to be less explosion-prone.</p>
|
||||||
|
<p>So I can't play. My phone randomly decided to fuck up my button remaps, so I installed xposed (among several other attempts) to try to fix it. Eventually found a good xposed package for it. Anyway, when I first installed it, MCC stopped loading. Gave me a blank white screen as soon as I open the app. Huh. Similar to the time I ran a "prevent DRM content playing" script, which appeared to affect nothing else. I undid it fine, but uninstalling xposed didn't. Hmm.</br>So I switched to <a href='https://anbox.io/'>anbox</a>, which meant no notifications, as I mentioned in my status. But then Manjaro switched stable kernel to <a href='https://github.com/anbox/anbox-modules/issues/49'>linux 5.7</a>. So I compiled my own version of 5.7 with the config options enabled, but binder still doesn't work, and it has no networking. I think I know why the latter occurs, but not how to fix it yet. So that's all TODO. I jumped back on 5.6 to update my status, but I'm going to keep using 5.7, (y'know, for continued support since 5.6 is EOL and) to try to force myself to sort this out properly.<br/>My new phone will probably show up before then.</p>
|
||||||
|
<p>So <a href='https://shop.shiftphones.com/shift6m.html'>new phone</a> arrived. I'm going to flash <a href='https://lineageos.org/'>Lineage</a> or something on it soon, but until then, I'll be doing a lot of packet sniffing of MCC to try and figure out how the login system works, so that I can make a custom (desktop) client for it. That's already started (or continued, since I did some in the past on my other phone), but it may take time to make sense of it all. <a href='/contact'>Help appreciated</a>.</p>
|
||||||
|
<p><a href='https://forum.shiftphones.com/threads/lineageos-15-1-android-8-1.1950/post-21579'>Haha I (probably) bricked it</a>. IS FIXED! Shift support are gods!</p>
|
14
main/pages/quotes
Normal file
14
main/pages/quotes
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Argy: A sprinting ninja with no taste whatsoever in music.
|
||||||
|
Crizzly: You look creepy when you glare into the soul of the viewer in the camera
|
||||||
|
LovelyJane: zergling i see you are being an insufferable prick as usual
|
||||||
|
Vintage Seinfeld DVD: Found "Wisknort", can't remember who he is but I remember him\nYou probably don't know 'em
|
||||||
|
i-58: pervling_man. It fits nicely. webcomic_man is a better summary
|
||||||
|
LanLingWang: a man with a temper with that of a women. a hermit who cares about mundane & worldly matters. a non flexible philosopher. unique indeed
|
||||||
|
Madao: how lazy you are?\nlazyman halolua its lazyman
|
||||||
|
Sayori's Bodyguard: i'm asking for english you australio-weeb
|
||||||
|
Yuko Yoshida: Whiskers looks like the embodiment of a discord admin
|
||||||
|
Quackerkats: i think whiskers has lost it lol
|
||||||
|
Danna: Who is zerg ? A guy who had a PA signature where he told a plant loli he wish he could show her more than her game
|
||||||
|
PonyPanda: I'm serious. I find you to be a very dull and unnecessary person.\nI don't want you to see my content. You're a parasite and unremarkable in every way.
|
||||||
|
The Thicc Earth Society: Asexual Programming Trap-Loving Hipster friend
|
||||||
|
WHY REMIX: you make your own life worse on purpose and complain to others when they aren't in as much pain as you. genuinely seek mental help, im not insulting or joking
|
20
main/pages/redirects
Normal file
20
main/pages/redirects
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
adobe: https://www.patreon.com/posts/26834357
|
||||||
|
faplog: https://docs.google.com/spreadsheets/d/1sIh5evj1Janf_fdefbrksGLyHO_uMMDOjHJReA0P0fw/edit
|
||||||
|
fpdam: https://docs.google.com/document/d/1XSKSC9PYxAE1ys2u5ALD3wDBaps6LQgGe-GtyAju3q8/edit?usp=sharing
|
||||||
|
fpdb: https://docs.google.com/spreadsheets/d/1iJd8dBMbAKfwbfcWNnE-tElu4amJdtz4iMxWCxwKNY8/edit
|
||||||
|
fuckmeyourself: https://gelbooru.com/index.php?page=post&s=view&id=4608040
|
||||||
|
hitspark: https://images.squarespace-cdn.com/content/v1/5728734545bf2166bba67b00/1538785588130-I8WVGV947EEW81LII25S/ke17ZwdGBToddI8pDm48kODKEPcE7oOaZ-HX_UAJexAUqsxRUqqbr1mOJYKfIPR7LoDQ9mXPOjoJoqy81S2I8N_N4V1vUb5AoIIIbLZhVYy7Mythp_T-mtop-vrsUOmeInPi9iDjx9w8K4ZfjXt2dhV8WLpqAVTw2_ZfbaHHLLR7LAwPhjFlJ4O4wogcebl8m7cT0R_dexc_UL_zbpz6JQ/frame_advantage_5up.jpg?format=1000w
|
||||||
|
homo: https://innermantheatre.files.wordpress.com/2020/11/lightspeed-lab-ep.261-homosexuality.jpg
|
||||||
|
homo/s: https://innermantheatre.com/2021/03/29/lightspeed-lab-homosexuality/
|
||||||
|
nadeko: https://docs.google.com/spreadsheets/d/12ZpOI3coZHlSFQ7oFuo1HzbkTkgX8RBk06oeMM56HFQ/edit#gid=0
|
||||||
|
nlship: https://docs.google.com/document/d/1oVZSv7v8cePVu22qmbgkCUtm9LnUcSZIaQyH-3b_DhI/edit?usp=sharing
|
||||||
|
nlvn: https://docs.google.com/document/d/1tVVI2NAY_1vFLsMrbRzn18FiXNzZcDgdxnNXKHEFzTs/edit#
|
||||||
|
osscans: https://discord.gg/VStXkfm
|
||||||
|
ossd: https://drive.google.com/drive/folders/14xIZJER551zEB9rP9d655MdpRE0xDBW8
|
||||||
|
perm: http://nadekobot.readthedocs.io/en/latest/Permissions%20System/
|
||||||
|
rinbot: https://discordapp.com/oauth2/authorize?client_id=448458599673364481&scope=bot
|
||||||
|
sauce: https://discord.gg/gsUT8B
|
||||||
|
spook: https://rakka.tk/pics/SPOOKY/SCARY/SKELETONS/SEND/SHIVERS/DOWN/YOUR/SPINE/SHRIEKING/SKULLS/WILL/SHOCK/YOUR/SOUL/SEAL/YOUR/DOOM/TONIGHT/SPOOKY/SCARY/SKELETONS/SPEAK/WITH/SUCH/A/SCREECH/YOU'LL/SHAKE/AND/SHUDDER/IN/SURPRISE/WHEN/YOU/HEAR/THESE/ZOMBIES/SHRIEK/WE'RE/SO/SORRY/SKELETONS/YOU'RE/SO/MISUNDERSTOOD/YOU/ONLY/WANT/TO/SOCIALIZE/BUT/I/DON'T/THINK/WE/SHOULD/CAUSE_SPOOKY_SCARY_SKELETONS_SHOUT_STARTLING_SHRILLY_SCREAMS.gif
|
||||||
|
wou: https://discord.gg/8sc5m6R
|
||||||
|
WushuAT: https://docs.google.com/document/d/1wtJ6JCpmpr-ziAb0UR0OpW1tX7Ms5CiDFUQkjPgFzIE/edit?usp=drive_web&ouid=102857329945830311247
|
||||||
|
years: https://docs.google.com/spreadsheets/d/1p7NIoC2-o8BJvbLD5N1WazaFAtw4vto7bxJMGsarcgE/edit
|
355
main/pages/specs
Normal file
355
main/pages/specs
Normal file
|
@ -0,0 +1,355 @@
|
||||||
|
jasmine
|
||||||
|
description: Desktop Computer
|
||||||
|
product: Z270-HD3 (Default string)
|
||||||
|
vendor: Gigabyte Technology Co., Ltd.
|
||||||
|
version: Default string
|
||||||
|
serial: Default string
|
||||||
|
width: 4294967295 bits
|
||||||
|
capabilities: smbios-3.0 dmi-3.0 smp vsyscall32
|
||||||
|
configuration: boot=normal chassis=desktop family=Default string sku=Default string uuid=1C021B03-0D04-9405-C806-9F0700080009
|
||||||
|
*-core
|
||||||
|
description: Motherboard
|
||||||
|
product: Z270-HD3-CF
|
||||||
|
vendor: Gigabyte Technology Co., Ltd.
|
||||||
|
physical id: 0
|
||||||
|
version: x.x
|
||||||
|
serial: Default string
|
||||||
|
slot: Default string
|
||||||
|
*-firmware
|
||||||
|
description: BIOS
|
||||||
|
vendor: American Megatrends Inc.
|
||||||
|
physical id: 0
|
||||||
|
version: F2
|
||||||
|
date: 11/22/2016
|
||||||
|
size: 64KiB
|
||||||
|
capacity: 8128KiB
|
||||||
|
capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int14serial int17printer acpi usb biosbootspecification uefi
|
||||||
|
*-memory
|
||||||
|
description: System Memory
|
||||||
|
physical id: 3d
|
||||||
|
slot: System board or motherboard
|
||||||
|
size: 16GiB
|
||||||
|
*-bank:0
|
||||||
|
description: [empty]
|
||||||
|
physical id: 0
|
||||||
|
slot: ChannelA-DIMM0
|
||||||
|
*-bank:1
|
||||||
|
description: [empty]
|
||||||
|
physical id: 1
|
||||||
|
slot: ChannelA-DIMM1
|
||||||
|
*-bank:2
|
||||||
|
description: DIMM DDR4 Synchronous 2133 MHz (0.5 ns)
|
||||||
|
product: CMK16GX4M1B3000C15
|
||||||
|
vendor: AMI
|
||||||
|
physical id: 2
|
||||||
|
serial: 00000000
|
||||||
|
slot: ChannelB-DIMM0
|
||||||
|
size: 16GiB
|
||||||
|
width: 64 bits
|
||||||
|
clock: 2133MHz (0.5ns)
|
||||||
|
*-bank:3
|
||||||
|
description: [empty]
|
||||||
|
physical id: 3
|
||||||
|
slot: ChannelB-DIMM1
|
||||||
|
*-cache:0
|
||||||
|
description: L1 cache
|
||||||
|
physical id: 43
|
||||||
|
slot: L1 Cache
|
||||||
|
size: 256KiB
|
||||||
|
capacity: 256KiB
|
||||||
|
capabilities: synchronous internal write-back unified
|
||||||
|
configuration: level=1
|
||||||
|
*-cache:1
|
||||||
|
description: L2 cache
|
||||||
|
physical id: 44
|
||||||
|
slot: L2 Cache
|
||||||
|
size: 1MiB
|
||||||
|
capacity: 1MiB
|
||||||
|
capabilities: synchronous internal write-back unified
|
||||||
|
configuration: level=2
|
||||||
|
*-cache:2
|
||||||
|
description: L3 cache
|
||||||
|
physical id: 45
|
||||||
|
slot: L3 Cache
|
||||||
|
size: 6MiB
|
||||||
|
capacity: 6MiB
|
||||||
|
capabilities: synchronous internal write-back unified
|
||||||
|
configuration: level=3
|
||||||
|
*-cpu
|
||||||
|
description: CPU
|
||||||
|
product: Intel(R) Core(TM) i5-7600K CPU @ 3.80GHz
|
||||||
|
vendor: Intel Corp.
|
||||||
|
physical id: 46
|
||||||
|
bus info: cpu@0
|
||||||
|
version: Intel(R) Core(TM) i5-7600K CPU @ 3.80GHz
|
||||||
|
serial: To Be Filled By O.E.M.
|
||||||
|
slot: U3E1
|
||||||
|
size: 4199MHz
|
||||||
|
capacity: 4200MHz
|
||||||
|
width: 64 bits
|
||||||
|
clock: 100MHz
|
||||||
|
capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp cpufreq
|
||||||
|
configuration: cores=4 enabledcores=4 threads=4
|
||||||
|
*-pci
|
||||||
|
description: Host bridge
|
||||||
|
product: Intel Corporation
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 100
|
||||||
|
bus info: pci@0000:00:00.0
|
||||||
|
version: 05
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
*-display
|
||||||
|
description: VGA compatible controller
|
||||||
|
product: HD Graphics 630
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 2
|
||||||
|
bus info: pci@0000:00:02.0
|
||||||
|
version: 04
|
||||||
|
width: 64 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
|
||||||
|
configuration: driver=i915 latency=0
|
||||||
|
resources: irq:125 memory:ee000000-eeffffff memory:d0000000-dfffffff ioport:f000(size=64) memory:c0000-dffff
|
||||||
|
*-generic UNCLAIMED
|
||||||
|
description: System peripheral
|
||||||
|
product: Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 8
|
||||||
|
bus info: pci@0000:00:08.0
|
||||||
|
version: 00
|
||||||
|
width: 64 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: msi pm cap_list
|
||||||
|
configuration: latency=0
|
||||||
|
resources: memory:ef04e000-ef04efff
|
||||||
|
*-usb
|
||||||
|
description: USB controller
|
||||||
|
product: 200 Series PCH USB 3.0 xHCI Controller
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 14
|
||||||
|
bus info: pci@0000:00:14.0
|
||||||
|
version: 00
|
||||||
|
width: 64 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pm msi xhci bus_master cap_list
|
||||||
|
configuration: driver=xhci_hcd latency=0
|
||||||
|
resources: irq:122 memory:ef030000-ef03ffff
|
||||||
|
*-usbhost:0
|
||||||
|
product: xHCI Host Controller
|
||||||
|
vendor: Linux 4.12.3-1-ARCH xhci-hcd
|
||||||
|
physical id: 0
|
||||||
|
bus info: usb@1
|
||||||
|
logical name: usb1
|
||||||
|
version: 4.12
|
||||||
|
capabilities: usb-2.00
|
||||||
|
configuration: driver=hub slots=16 speed=480Mbit/s
|
||||||
|
*-usbhost:1
|
||||||
|
product: xHCI Host Controller
|
||||||
|
vendor: Linux 4.12.3-1-ARCH xhci-hcd
|
||||||
|
physical id: 1
|
||||||
|
bus info: usb@2
|
||||||
|
logical name: usb2
|
||||||
|
version: 4.12
|
||||||
|
capabilities: usb-3.00
|
||||||
|
configuration: driver=hub slots=10 speed=5000Mbit/s
|
||||||
|
*-communication
|
||||||
|
description: Communication controller
|
||||||
|
product: 200 Series PCH CSME HECI #1
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 16
|
||||||
|
bus info: pci@0000:00:16.0
|
||||||
|
version: 00
|
||||||
|
width: 64 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pm msi bus_master cap_list
|
||||||
|
configuration: driver=mei_me latency=0
|
||||||
|
resources: irq:124 memory:ef04d000-ef04dfff
|
||||||
|
*-storage
|
||||||
|
description: SATA controller
|
||||||
|
product: 200 Series PCH SATA controller [AHCI mode]
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 17
|
||||||
|
bus info: pci@0000:00:17.0
|
||||||
|
version: 00
|
||||||
|
width: 32 bits
|
||||||
|
clock: 66MHz
|
||||||
|
capabilities: storage msi pm ahci_1.0 bus_master cap_list
|
||||||
|
configuration: driver=ahci latency=0
|
||||||
|
resources: irq:123 memory:ef048000-ef049fff memory:ef04c000-ef04c0ff ioport:f090(size=8) ioport:f080(size=4) ioport:f060(size=32) memory:ef04b000-ef04b7ff
|
||||||
|
*-pci:0
|
||||||
|
description: PCI bridge
|
||||||
|
product: 200 Series PCH PCI Express Root Port #17
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1b
|
||||||
|
bus info: pci@0000:00:1b.0
|
||||||
|
version: f0
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
|
||||||
|
configuration: driver=pcieport
|
||||||
|
resources: irq:16
|
||||||
|
*-pci:1
|
||||||
|
description: PCI bridge
|
||||||
|
product: 200 Series PCH PCI Express Root Port #19
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1b.2
|
||||||
|
bus info: pci@0000:00:1b.2
|
||||||
|
version: f0
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
|
||||||
|
configuration: driver=pcieport
|
||||||
|
resources: irq:18
|
||||||
|
*-pci:2
|
||||||
|
description: PCI bridge
|
||||||
|
product: 200 Series PCH PCI Express Root Port #20
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1b.3
|
||||||
|
bus info: pci@0000:00:1b.3
|
||||||
|
version: f0
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
|
||||||
|
configuration: driver=pcieport
|
||||||
|
resources: irq:19
|
||||||
|
*-pci:3
|
||||||
|
description: PCI bridge
|
||||||
|
product: 200 Series PCH PCI Express Root Port #21
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1b.4
|
||||||
|
bus info: pci@0000:00:1b.4
|
||||||
|
version: f0
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
|
||||||
|
configuration: driver=pcieport
|
||||||
|
resources: irq:16
|
||||||
|
*-pci:4
|
||||||
|
description: PCI bridge
|
||||||
|
product: 200 Series PCH PCI Express Root Port #1
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1c
|
||||||
|
bus info: pci@0000:00:1c.0
|
||||||
|
version: f0
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
|
||||||
|
configuration: driver=pcieport
|
||||||
|
resources: irq:16
|
||||||
|
*-pci:5
|
||||||
|
description: PCI bridge
|
||||||
|
product: 200 Series PCH PCI Express Root Port #3
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1c.2
|
||||||
|
bus info: pci@0000:00:1c.2
|
||||||
|
version: f0
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
|
||||||
|
configuration: driver=pcieport
|
||||||
|
resources: irq:0
|
||||||
|
*-pci
|
||||||
|
description: PCI bridge
|
||||||
|
product: Integrated Technology Express, Inc.
|
||||||
|
vendor: Integrated Technology Express, Inc.
|
||||||
|
physical id: 0
|
||||||
|
bus info: pci@0000:06:00.0
|
||||||
|
version: 71
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pci pm subtractive_decode bus_master cap_list
|
||||||
|
*-pci:6
|
||||||
|
description: PCI bridge
|
||||||
|
product: 200 Series PCH PCI Express Root Port #5
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1c.4
|
||||||
|
bus info: pci@0000:00:1c.4
|
||||||
|
version: f0
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
|
||||||
|
configuration: driver=pcieport
|
||||||
|
resources: irq:16 ioport:2000(size=4096) memory:c0000000-c01fffff ioport:c0200000(size=2097152)
|
||||||
|
*-pci:7
|
||||||
|
description: PCI bridge
|
||||||
|
product: 200 Series PCH PCI Express Root Port #9
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1d
|
||||||
|
bus info: pci@0000:00:1d.0
|
||||||
|
version: f0
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
|
||||||
|
configuration: driver=pcieport
|
||||||
|
resources: irq:16
|
||||||
|
*-isa
|
||||||
|
description: ISA bridge
|
||||||
|
product: 200 Series PCH LPC Controller (Z270)
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1f
|
||||||
|
bus info: pci@0000:00:1f.0
|
||||||
|
version: 00
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: isa bus_master
|
||||||
|
configuration: latency=0
|
||||||
|
*-memory UNCLAIMED
|
||||||
|
description: Memory controller
|
||||||
|
product: 200 Series PCH PMC
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1f.2
|
||||||
|
bus info: pci@0000:00:1f.2
|
||||||
|
version: 00
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz (30.3ns)
|
||||||
|
capabilities: bus_master
|
||||||
|
configuration: latency=0
|
||||||
|
resources: memory:ef044000-ef047fff
|
||||||
|
*-multimedia
|
||||||
|
description: Audio device
|
||||||
|
product: 200 Series PCH HD Audio
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1f.3
|
||||||
|
bus info: pci@0000:00:1f.3
|
||||||
|
version: 00
|
||||||
|
width: 64 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pm msi bus_master cap_list
|
||||||
|
configuration: driver=snd_hda_intel latency=32
|
||||||
|
resources: irq:127 memory:ef040000-ef043fff memory:ef020000-ef02ffff
|
||||||
|
*-serial
|
||||||
|
description: SMBus
|
||||||
|
product: 200 Series PCH SMBus Controller
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1f.4
|
||||||
|
bus info: pci@0000:00:1f.4
|
||||||
|
version: 00
|
||||||
|
width: 64 bits
|
||||||
|
clock: 33MHz
|
||||||
|
configuration: driver=i801_smbus latency=0
|
||||||
|
resources: irq:16 memory:ef04a000-ef04a0ff ioport:f040(size=32)
|
||||||
|
*-network
|
||||||
|
description: Ethernet interface
|
||||||
|
product: Ethernet Connection (2) I219-V
|
||||||
|
vendor: Intel Corporation
|
||||||
|
physical id: 1f.6
|
||||||
|
bus info: pci@0000:00:1f.6
|
||||||
|
logical name: enp0s31f6
|
||||||
|
version: 00
|
||||||
|
serial: 1c:1b:0d:94:c8:9f
|
||||||
|
size: 1Gbit/s
|
||||||
|
capacity: 1Gbit/s
|
||||||
|
width: 32 bits
|
||||||
|
clock: 33MHz
|
||||||
|
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
|
||||||
|
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k duplex=full firmware=0.2-4 ip=10.0.0.137 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
|
||||||
|
resources: irq:126 memory:ef000000-ef01ffff
|
||||||
|
*-power UNCLAIMED
|
||||||
|
description: To Be Filled By O.E.M.
|
||||||
|
product: To Be Filled By O.E.M.
|
||||||
|
vendor: To Be Filled By O.E.M.
|
||||||
|
physical id: 1
|
||||||
|
version: To Be Filled By O.E.M.
|
||||||
|
serial: To Be Filled By O.E.M.
|
||||||
|
capacity: 32768mWh
|
7
main/templates/main/nav.html
Normal file
7
main/templates/main/nav.html
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<nav>
|
||||||
|
<ul class='nav'>
|
||||||
|
<!-- This is just treated specially for now.-->
|
||||||
|
<li id="home" class="navpiece"><a href="/" class="navpiece">Home</a><div><a href="/free" class="navpiece">blep</a></div></li>
|
||||||
|
{% for naver in navs %}{% if naver.align != 2 %} <li id={{ naver.id }} class="navpiece {% if naver.align == 1 %}right{% endif %}"><a href="{{ naver.link }}" class="navpiece">{{ naver.text }}</a></li>
|
||||||
|
{% endif %}{% endfor %} </ul>
|
||||||
|
</nav>
|
16
main/templates/main/temp.html
Normal file
16
main/templates/main/temp.html
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{% load static %}<!DOCTYPE html>
|
||||||
|
<html lang='en-AU'>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="/static/main/theme.css">
|
||||||
|
<title>
|
||||||
|
Tas [] & Van Canto - {{ title }}
|
||||||
|
</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{{ nav }}
|
||||||
|
<main>
|
||||||
|
{% autoescape off %}{{ content }}{% endautoescape %}
|
||||||
|
</main>
|
||||||
|
<p class="foot">Page last updated {{ date }}</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
3
main/tests.py
Normal file
3
main/tests.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
28
main/urls.py
Normal file
28
main/urls.py
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
from django.urls import path, re_path
|
||||||
|
from . import views
|
||||||
|
|
||||||
|
urlpatterns=[
|
||||||
|
path('',views.index,name='idex'),
|
||||||
|
path('me.php',views.me,name='me2'),
|
||||||
|
path('me',views.me,name='me'),
|
||||||
|
path('contact.php',views.contact,name='contact2'),
|
||||||
|
path('contact',views.contact,name='contact'),
|
||||||
|
path('specs',views.specs,name='specs'),
|
||||||
|
path('vids.php',views.songs,name='songs2'),
|
||||||
|
path('songs',views.songs,name='songs'),
|
||||||
|
path('webhost.php',views.host,name='webhost2'),
|
||||||
|
path('webhost',views.host,name='webhost'),
|
||||||
|
path('free',views.free,name='free'),
|
||||||
|
path('myroids/',views.myroids,name='myroids2'),
|
||||||
|
path('myroids',views.myroids,name='myroids'),
|
||||||
|
path('myroids/browser',views.myroidbrowser,name='mybrowse'),
|
||||||
|
path('nerdshope',views.nerdshope,name='shop'),
|
||||||
|
path('syntax/',views.syntax,name='syntaxer2'),
|
||||||
|
path('syntax',views.syntax,name='syntaxer'),
|
||||||
|
path('teapot',views.teapot,name='teapot'),
|
||||||
|
path('toask',views.articles,name='articles'),
|
||||||
|
path('todd',views.todd,name='todd'),
|
||||||
|
re_path('r/(.*)',views.redirect,name='redirect'),
|
||||||
|
path('bikebunny',views.bikebunny,name='bikebunny'),
|
||||||
|
path('md.rss',views.md,name='md'),
|
||||||
|
]
|
11
main/utils/navs
Normal file
11
main/utils/navs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
books,/books.php,Books,2
|
||||||
|
songs,/songs,Songs,0
|
||||||
|
syntax,/syntax,Syntaxer,0
|
||||||
|
pics,/pics/,Pics,2
|
||||||
|
wargame,https://gitlab.com/zergling-man/Wargamer,Wargamer,0
|
||||||
|
rinbot,/r/rinbot,Rinbot,0
|
||||||
|
survey,/emojisurvey.php,Survey,2
|
||||||
|
myroids,/myroids,Myroids,0
|
||||||
|
bot,/bot,Bot chat,2
|
||||||
|
articles,/toask,Articles,0
|
||||||
|
contact,/contact,Contact,1
|
9
main/utils/song-ids
Normal file
9
main/utils/song-ids
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
-f8V1QSf7yg
|
||||||
|
IvajtyyAN-s
|
||||||
|
rt4CQc1MSso
|
||||||
|
Kwz0Q8_q9yo
|
||||||
|
ry9CBDGsWtw
|
||||||
|
VQ1huQYHVUM
|
||||||
|
uJUWk01vV2E
|
||||||
|
S9QHgFtrgwE
|
||||||
|
BBFsTjMGQqo
|
163
main/views.py
Normal file
163
main/views.py
Normal file
|
@ -0,0 +1,163 @@
|
||||||
|
from django.shortcuts import render
|
||||||
|
from django.http import HttpResponse
|
||||||
|
from django.template import loader
|
||||||
|
import random as ra
|
||||||
|
import asyncio
|
||||||
|
from . import mdl
|
||||||
|
|
||||||
|
import functools
|
||||||
|
|
||||||
|
def rerender(funky):
|
||||||
|
@functools.wraps(funky)
|
||||||
|
def wrap(req,*args,**kwargs):
|
||||||
|
with open('main/utils/navs') as b:
|
||||||
|
navs=parsecat(b,4)
|
||||||
|
namednavs=[{'id':blah[0], 'link':blah[1], 'text':blah[2], 'align':int(blah[3])} for blah in navs['']]
|
||||||
|
out=funky(*args,**kwargs)
|
||||||
|
temp=loader.get_template('main/nav.html')
|
||||||
|
out['nav']=temp.render({"navs":namednavs},None)
|
||||||
|
return render(req, 'main/temp.html', out)
|
||||||
|
return wrap
|
||||||
|
|
||||||
|
def parsecat(file,n):
|
||||||
|
if not isinstance(file,str):
|
||||||
|
# Assume open handle
|
||||||
|
stuff=file.read()
|
||||||
|
else:
|
||||||
|
with open(f'main/pages/{file}') as b:
|
||||||
|
stuff=b.read()
|
||||||
|
cats=stuff.split('\n\n')
|
||||||
|
out={}
|
||||||
|
head=''
|
||||||
|
out['']=[]
|
||||||
|
for cat in cats:
|
||||||
|
if ':' in cat[:cat.index('\n')]:
|
||||||
|
# We have a category name
|
||||||
|
head,cat=cat.split('\n',1)
|
||||||
|
head=head[:-1]
|
||||||
|
out[head]=[]
|
||||||
|
else: head=''
|
||||||
|
for line in cat.split('\n'):
|
||||||
|
lin=line.split(',',n-1)
|
||||||
|
pad=n-len(lin)
|
||||||
|
lin.extend(['']*pad)
|
||||||
|
out[head].append(lin)
|
||||||
|
if out['']==[]: del(out[''])
|
||||||
|
return out
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def index():
|
||||||
|
with open('main/pages/index') as b:
|
||||||
|
stuff=b.read()
|
||||||
|
with open('main/utils/song-ids') as b:
|
||||||
|
raws=b.read()
|
||||||
|
ids=raws.split('\n')
|
||||||
|
stuff=stuff.format(ra.choice(ids))
|
||||||
|
return {'title':'Home','content':stuff,'date':'2021/07/24'}
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def me():
|
||||||
|
with open('main/pages/quotes') as b:
|
||||||
|
stuff=b.read()
|
||||||
|
stuff={n[:n.index(': ')]:n[n.index(': ')+2:] for n in stuff.split('\n')}
|
||||||
|
lbn='\\n'
|
||||||
|
stuff='<br/>\n'.join([f'"{v.replace(lbn,"<br/>")}" - {k.replace(lbn,"<br/>")}' for k,v in stuff.items()])
|
||||||
|
return {'title':'Me','content':stuff,'date':'2021/08/26'}
|
||||||
|
|
||||||
|
def lii(name,proto,link='',note=''):
|
||||||
|
if link: name=f"<a href='{link}'>{name}</a>"
|
||||||
|
if note: name=f"{name} ({note})"
|
||||||
|
return f"\n<li>{proto}: {name}</li>"
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def contact():
|
||||||
|
head="Certain people keep asking me about the best ways to contact me. So here they are, in rough order of most to least preferred. More to come as I remember them/feel like it<br/>"
|
||||||
|
out=parsecat('contacts',4)
|
||||||
|
out3=''
|
||||||
|
for k,v in out.items():
|
||||||
|
out2=f"\n<p><h4>{k}</h4>\n<ul>"
|
||||||
|
out2+='\n'.join([lii(*l) for l in v])
|
||||||
|
out2+="\n</ul></p>"
|
||||||
|
out3+=out2
|
||||||
|
return {'title':'Contact','content':head+out3,'date':'2021/08/13'}
|
||||||
|
|
||||||
|
def specs(req):
|
||||||
|
with open('main/pages/specs') as b:
|
||||||
|
return HttpResponse(b.read(), content_type="text/plain")
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def songs():
|
||||||
|
with open('main/utils/song-ids') as b:
|
||||||
|
raws=b.read()
|
||||||
|
ids=raws.split('\n')
|
||||||
|
out='This is the full list of songs that can appear on the home page.<br/>'+'<br/>\n'.join([f'<a href="https://invidious.ethibox.fr/watch?v={idd}">https://invidious.ethibox.fr/watch?v={idd}</a>' for idd in ids])
|
||||||
|
return {'title':'Songs','content':out,'date':'2021/05/06'}
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def host():
|
||||||
|
return {'title':'Webhost','content':"I want to do a fully-fledged hosting thing. Like offer an actual VPS. But that's a lot of effort, and I want to do things like \"you have a folder in your VPS that will show up on your custom subdomain\" and such. <strike>I have exactly zero idea how to make multiple subdomains point to a single computer though.</strike> So it turns out <strike>Apache</strike> actually just has a thing to do exactly that. But fuck Apache. nginx can do it too. TODO™",'date':'2021/05/06'}
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def free():
|
||||||
|
with open('main/pages/free') as b:
|
||||||
|
return {'title':'Not free beer','content':b.read(),'date':'2021/07/24'}
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def myroids():
|
||||||
|
with open('main/pages/myroids') as b:
|
||||||
|
return {'title':'#myroid:matrix.org','content':b.read(),'date':'2021/05/06'}
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def myroidbrowser():
|
||||||
|
with open('main/pages/myroidbrowse') as b:
|
||||||
|
return {'title':'#myroid:matrix.org','content':b.read(),'date':'2021/05/15'}
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def nerdshope():
|
||||||
|
return {'title':'Nerds\' Hope','content':"Store stuff. TODO. Will include inventory and budget. <a href='https://facebook.com/nerdshope'>FB</a><br/>Address is 21 Kensington St, Glenorchy<br/>Off dates 2021: 24th Sept, 29th Oct, 26th Nov<br/>Will be late on the 1st of Oct<br/>Not sure about 31st of Dec. Depends what other plans are made. I might host a NYE party that night.",'date':'2021/09/05'}
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def syntax():
|
||||||
|
return {'title':"What's that syntax?",'content':"<h1>What's that syntax?</h1><br/>A far-future goal, this will be a service for looking up strange bits of syntax you see in programs, that you're trying to find the name for so that you can search for that.<br/>Inspired by other lookup services like <a href='http://trace.moe'>What Anime is That?</a>, and more importantly, by C#'s <a href='https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/object-and-collection-initializers'>object initialiser</a>.",'date':'2021/05/06'}
|
||||||
|
|
||||||
|
def teapot(req):
|
||||||
|
return HttpResponse("You're probably missing the joke.",status=418)
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def articles():
|
||||||
|
head="<p>Interesting/useful blog posts I've found.</p>"
|
||||||
|
arts=parsecat('articles',2)
|
||||||
|
out=[]
|
||||||
|
for k,v in arts.items():
|
||||||
|
out.append(f'<h4>{k}</h4>'+ '<br/>'.join([f'<a href="{l[0]}">{l[1] or l[0]}</a>' for l in v]))
|
||||||
|
return {'title':'Articles','content':'<p>'+('</p><p>'.join(out))+'</p>','date':'2021/05/06'}
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def todd():
|
||||||
|
out="""<p>Obviously, this started as a joke and turned into a fully-fledged shitpost. The invite link is <a href= 'https://discordapp.com/oauth2/authorize?client_id=544769594343292929&scope=bot'>here</a>, the culprit is Zergling_man#9849, and... It just spams, kinda. Every 10 minutes in every channel and once every time someone starts a message with a ., or mentions it. Don't forget to buy Skyrim. Try '.wake'!</p>
|
||||||
|
Credits:<p>Avatar cropped from <a href='https://en.wikipedia.org/wiki/File:ToddHoward2010sm.jpg'>this picture</a>,<br/>
|
||||||
|
repeating text created by 'Jade', and kept sic.<br/>
|
||||||
|
Flashrim pictures provided by Emperor Tang.<br/>
|
||||||
|
Portalrim gif provided by ColeFreeman72.<br/>
|
||||||
|
Animated memes gif provided by SakoArorim.<br/>
|
||||||
|
Phonedrop gif provided by Takamatsu.<br/>
|
||||||
|
Mugrim also provided by Takamatsu.<br/>
|
||||||
|
Racerim provided by Kotz<br/>
|
||||||
|
"provided by" indicates the content was not created by the person. If no creator is mentioned, they're unknown.</p>
|
||||||
|
<p>As of 2021-04-14, I've taken this bot offline forever and released the token (and code). If you see it online, it's not my doing, and I don't care if it gets me banned.</p>"""
|
||||||
|
return {'title':'It just works','content':out,'date':'2021/07/24'}
|
||||||
|
|
||||||
|
def redirect(req,src):
|
||||||
|
with open('main/pages/redirects') as b:
|
||||||
|
lonks=b.read()
|
||||||
|
lonks=dict([n.split(': ',1) for n in lonks.split('\n')])
|
||||||
|
return HttpResponse(status=302,headers={'Location':lonks[src]})
|
||||||
|
|
||||||
|
@rerender
|
||||||
|
def bikebunny():
|
||||||
|
return {'title':'bikebunny','content':"I'm the rabbit-eared cyclist/bike bunny. And, well, the guy that wears blue bunny ears year-round (for now). This is my site. I live different, I encourage you to join me. <a href='/contact/'>Get in touch</a>.",'date':'2021/07/24'}
|
||||||
|
|
||||||
|
def md(req):
|
||||||
|
loop=asyncio.get_event_loop()
|
||||||
|
feed=loop.run_until_complete(mdl.makefeed(req.GET.getlist('ids','')))
|
||||||
|
return HttpResponse(feed, content_type='application/rss+xml')
|
22
manage.py
Executable file
22
manage.py
Executable file
|
@ -0,0 +1,22 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
"""Django's command-line utility for administrative tasks."""
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Run administrative tasks."""
|
||||||
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'rakka.settings')
|
||||||
|
try:
|
||||||
|
from django.core.management import execute_from_command_line
|
||||||
|
except ImportError as exc:
|
||||||
|
raise ImportError(
|
||||||
|
"Couldn't import Django. Are you sure it's installed and "
|
||||||
|
"available on your PYTHONPATH environment variable? Did you "
|
||||||
|
"forget to activate a virtual environment?"
|
||||||
|
) from exc
|
||||||
|
execute_from_command_line(sys.argv)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
0
rakka/__init__.py
Normal file
0
rakka/__init__.py
Normal file
16
rakka/asgi.py
Normal file
16
rakka/asgi.py
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
"""
|
||||||
|
ASGI config for rakka project.
|
||||||
|
|
||||||
|
It exposes the ASGI callable as a module-level variable named ``application``.
|
||||||
|
|
||||||
|
For more information on this file, see
|
||||||
|
https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from django.core.asgi import get_asgi_application
|
||||||
|
|
||||||
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'rakka.settings')
|
||||||
|
|
||||||
|
application = get_asgi_application()
|
123
rakka/settings.py
Normal file
123
rakka/settings.py
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
"""
|
||||||
|
Django settings for rakka project.
|
||||||
|
|
||||||
|
Generated by 'django-admin startproject' using Django 3.1.1.
|
||||||
|
|
||||||
|
For more information on this file, see
|
||||||
|
https://docs.djangoproject.com/en/3.1/topics/settings/
|
||||||
|
|
||||||
|
For the full list of settings and their values, see
|
||||||
|
https://docs.djangoproject.com/en/3.1/ref/settings/
|
||||||
|
"""
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
with open('rakka.conf') as argagarg:
|
||||||
|
conf={n.split('=',1)[0]:n.split('=',1)[1] for n in argagarg.read().split('\n')}
|
||||||
|
|
||||||
|
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
||||||
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||||
|
|
||||||
|
|
||||||
|
# Quick-start development settings - unsuitable for production
|
||||||
|
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/
|
||||||
|
|
||||||
|
# SECURITY WARNING: keep the secret key used in production secret!
|
||||||
|
SECRET_KEY = conf['SECRET_KEY']
|
||||||
|
|
||||||
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
|
DEBUG = bool(conf['DEBUG'])
|
||||||
|
|
||||||
|
ALLOWED_HOSTS = [n.strip() for n in conf['ALLOWED_HOSTS'].split(',')] # [127.0.0.1,::1,localhost]
|
||||||
|
|
||||||
|
|
||||||
|
# Application definition
|
||||||
|
|
||||||
|
INSTALLED_APPS = [
|
||||||
|
'main.apps.MainConfig',
|
||||||
|
'django.contrib.admin',
|
||||||
|
'django.contrib.auth',
|
||||||
|
'django.contrib.contenttypes',
|
||||||
|
'django.contrib.sessions',
|
||||||
|
'django.contrib.messages',
|
||||||
|
'django.contrib.staticfiles',
|
||||||
|
]
|
||||||
|
|
||||||
|
MIDDLEWARE = [
|
||||||
|
'django.middleware.security.SecurityMiddleware',
|
||||||
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
|
'django.middleware.common.CommonMiddleware',
|
||||||
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||||
|
]
|
||||||
|
|
||||||
|
ROOT_URLCONF = 'rakka.urls'
|
||||||
|
|
||||||
|
TEMPLATES = [
|
||||||
|
{
|
||||||
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
|
'DIRS': ['rakka/templates'],
|
||||||
|
'APP_DIRS': True,
|
||||||
|
'OPTIONS': {
|
||||||
|
'context_processors': [
|
||||||
|
'django.template.context_processors.debug',
|
||||||
|
'django.template.context_processors.request',
|
||||||
|
'django.contrib.auth.context_processors.auth',
|
||||||
|
'django.contrib.messages.context_processors.messages',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
WSGI_APPLICATION = 'rakka.wsgi.application'
|
||||||
|
|
||||||
|
|
||||||
|
# Database
|
||||||
|
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases
|
||||||
|
|
||||||
|
DATABASES = {
|
||||||
|
'default': {
|
||||||
|
'ENGINE': 'django.db.backends.sqlite3',
|
||||||
|
'NAME': BASE_DIR / 'db.sqlite3',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Password validation
|
||||||
|
# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators
|
||||||
|
|
||||||
|
AUTH_PASSWORD_VALIDATORS = [
|
||||||
|
{
|
||||||
|
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
# Internationalization
|
||||||
|
# https://docs.djangoproject.com/en/3.1/topics/i18n/
|
||||||
|
|
||||||
|
LANGUAGE_CODE = conf.get('LANGUAGE_CODE','en-us')
|
||||||
|
|
||||||
|
TIME_ZONE = conf.get('TIME_ZONE','UTC')
|
||||||
|
|
||||||
|
USE_I18N = True
|
||||||
|
|
||||||
|
USE_L10N = True
|
||||||
|
|
||||||
|
USE_TZ = True
|
||||||
|
|
||||||
|
|
||||||
|
# Static files (CSS, JavaScript, Images)
|
||||||
|
# https://docs.djangoproject.com/en/3.1/howto/static-files/
|
||||||
|
|
||||||
|
STATIC_URL = '/static/'
|
24
rakka/urls.py
Normal file
24
rakka/urls.py
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
"""rakka URL Configuration
|
||||||
|
|
||||||
|
The `urlpatterns` list routes URLs to views. For more information please see:
|
||||||
|
https://docs.djangoproject.com/en/3.1/topics/http/urls/
|
||||||
|
Examples:
|
||||||
|
Function views
|
||||||
|
1. Add an import: from my_app import views
|
||||||
|
2. Add a URL to urlpatterns: path('', views.home, name='home')
|
||||||
|
Class-based views
|
||||||
|
1. Add an import: from other_app.views import Home
|
||||||
|
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
|
||||||
|
Including another URLconf
|
||||||
|
1. Import the include() function: from django.urls import include, path
|
||||||
|
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||||
|
"""
|
||||||
|
from django.contrib import admin
|
||||||
|
from django.urls import include, path
|
||||||
|
from . import views
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path('', include('main.urls')),
|
||||||
|
#path('', views.index,name='idex'),
|
||||||
|
path('admin/', admin.site.urls),
|
||||||
|
]
|
4
rakka/views.py
Normal file
4
rakka/views.py
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
from django.http import HttpResponse
|
||||||
|
|
||||||
|
def index(request):
|
||||||
|
return HttpResponse("blep")
|
16
rakka/wsgi.py
Normal file
16
rakka/wsgi.py
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
"""
|
||||||
|
WSGI config for rakka project.
|
||||||
|
|
||||||
|
It exposes the WSGI callable as a module-level variable named ``application``.
|
||||||
|
|
||||||
|
For more information on this file, see
|
||||||
|
https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from django.core.wsgi import get_wsgi_application
|
||||||
|
|
||||||
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'rakka.settings')
|
||||||
|
|
||||||
|
application = get_wsgi_application()
|
129
static/theme.css
Normal file
129
static/theme.css
Normal file
|
@ -0,0 +1,129 @@
|
||||||
|
body
|
||||||
|
{
|
||||||
|
/*part3*/
|
||||||
|
background-color: #9999ff;
|
||||||
|
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav
|
||||||
|
{
|
||||||
|
/*Positioning and no-scroll tricks*/
|
||||||
|
position: sticky;
|
||||||
|
top: 0px;
|
||||||
|
|
||||||
|
/*Stupid fix for a stupid bug*/
|
||||||
|
left: 0px;
|
||||||
|
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid;
|
||||||
|
display: inline-block;
|
||||||
|
|
||||||
|
background-color: #9999ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
|
{
|
||||||
|
/*Another stupid fix for another stupid bug.
|
||||||
|
If you use position:fixed, it just vanishes from its original spot
|
||||||
|
and there's no standard syntax for telling it to not do this;
|
||||||
|
to leave a blank space where it was instead.*/
|
||||||
|
/*Yay, fixed by position:sticky*/
|
||||||
|
/*margin-top: 40px;*/
|
||||||
|
/*Hmm: https://www.w3schools.com/cssref/func_attr.asp*/
|
||||||
|
|
||||||
|
/* Made in 2 minutes (including login+open) to demonstrate efficiency
|
||||||
|
vs advanced libraries. Make of that what you will. */
|
||||||
|
background-color: #cccccc;
|
||||||
|
width: 80%;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
border: 2px solid;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
main *
|
||||||
|
{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.nav
|
||||||
|
{
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
li.navpiece
|
||||||
|
{
|
||||||
|
/* Another stupid fix for YET ANOTHER stupid bug. This is how you vertically align text in an element.*/
|
||||||
|
max-width:100px;
|
||||||
|
display:table;
|
||||||
|
float:left;
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.navpiece, div.navpiece
|
||||||
|
{
|
||||||
|
text-decoration-line:none;
|
||||||
|
display: table-cell;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align:middle;
|
||||||
|
font-size: 16px; /* This wasn't actually doing anything, apparently.*/
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
/*part1*/
|
||||||
|
color: #0000ff;
|
||||||
|
background-color: #cccccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*a,a:hover
|
||||||
|
{
|
||||||
|
style: none;
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
I might need this again later, but for now, it's okay...*/
|
||||||
|
|
||||||
|
a.navpiece:hover
|
||||||
|
{
|
||||||
|
/*part2*/
|
||||||
|
background-color: #0000ff;
|
||||||
|
color: #cccccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
li.navpiece>div
|
||||||
|
{
|
||||||
|
display:none;
|
||||||
|
position:absolute;
|
||||||
|
top:100%;
|
||||||
|
left:0%;
|
||||||
|
width:100%;
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
|
||||||
|
li.navpiece:hover>div
|
||||||
|
{
|
||||||
|
display:inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
li.right
|
||||||
|
{
|
||||||
|
float:right;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1
|
||||||
|
{
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.foot
|
||||||
|
{
|
||||||
|
background-color: #cccccc;
|
||||||
|
float: right;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
border: 2px solid;
|
||||||
|
text-align: center;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user