From e03144c2e9fa69334b0886772d219655bec50109 Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Tue, 1 Aug 2023 11:16:44 -0400 Subject: [PATCH 01/21] Modified header tags There is now a single h1 tag. User posting forms and the timeline are in their own h2, and individual posts are in an h3 made around the toot title. --- brutaldon/templates/base.html | 2 +- brutaldon/templates/main/timeline.html | 5 +++-- brutaldon/templates/main/toot_partial.html | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/brutaldon/templates/base.html b/brutaldon/templates/base.html index 5574b15..81b2161 100644 --- a/brutaldon/templates/base.html +++ b/brutaldon/templates/base.html @@ -165,7 +165,7 @@
{% block content %}

- Title + Brutaldon

Brutaldon is totally a thing. diff --git a/brutaldon/templates/main/timeline.html b/brutaldon/templates/main/timeline.html index d229d2f..00598ab 100644 --- a/brutaldon/templates/main/timeline.html +++ b/brutaldon/templates/main/timeline.html @@ -14,14 +14,15 @@ {% endblock %} {% block content %} +

Brutaldon ({{ own_acct.username }}) - {{ timeline_name }} timelime

{% if form %} -

Post

+

Post

{% include "main/post_minimal_partial.html" %}
{% endif %} -

Your {{ timeline_name }} timeline

+

Your {{ timeline_name }} timeline

{% for toot in toots %} {% cache 600 toot_partial toot.id %} diff --git a/brutaldon/templates/main/toot_partial.html b/brutaldon/templates/main/toot_partial.html index 00d88f5..62c0443 100644 --- a/brutaldon/templates/main/toot_partial.html +++ b/brutaldon/templates/main/toot_partial.html @@ -29,7 +29,7 @@

- {{ toot.account.display_name | fix_emojos:toot.account.emojis | strip_html |safe}} +

{{ toot.account.display_name | fix_emojos:toot.account.emojis | strip_html |safe}}

@{{ toot.account.acct }} From 884f995f6ebd110bf1250fed7245a43bb8727669 Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Wed, 13 Mar 2024 18:16:53 -0400 Subject: [PATCH 02/21] Adding comments in code. --- brutaldon/forms.py | 7 +++++++ brutaldon/models.py | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/brutaldon/forms.py b/brutaldon/forms.py index d348d5f..83c58bd 100644 --- a/brutaldon/forms.py +++ b/brutaldon/forms.py @@ -1,6 +1,13 @@ +# The Forms modules supplies tools for http get and post, +# and building the
html elements to use them. from django import forms +# This module gives us access to the settings given to +# Django at runtime via settings files. from django.conf import settings +# Module for translating text, returns strings from django.utils.translation import gettext as _ +# Module for calculating times +# Note: Python 3.9 or later projects should be using internal libraries per pytz docs from pytz import common_timezones from .models import Theme, Preference diff --git a/brutaldon/models.py b/brutaldon/models.py index fcf65d7..f518bea 100644 --- a/brutaldon/models.py +++ b/brutaldon/models.py @@ -1,6 +1,10 @@ from django.db import models +# Module to access variables given to Django at runtime from django.conf import settings +# Module to translate strings from django.utils.translation import gettext as _ +# Module for calculating time +# Note: Python 3.9 or later programs should use internal libraries, per pytz docs from pytz import common_timezones timezones = [(tz, tz) for tz in common_timezones] From c4db4db3ba882c3f8441bbb0711dca2175b09c71 Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Wed, 13 Mar 2024 18:20:21 -0400 Subject: [PATCH 03/21] Updating documentation efforts. --- CONTRIBUTING.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0fcf151..992ce01 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,4 +26,6 @@ We currently lack a formal process for this. Translations can be submitted via m ## Documentation -We would love assistance in creating a formal documentation process for this project. +Current documentation efforts are focused on adding usable comments in the code itself. +Guides on how to set up and admin a brutaldon instance are likely to follow after that. +Feel free to send in a merge request with other documentation ideas you have! From 0b98ee9a2397bb1a28cf3575dec4f1659155f256 Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Sat, 16 Mar 2024 14:05:27 -0400 Subject: [PATCH 04/21] more documnetation tidbits --- brutaldon/context_processors.py | 6 +++++- brutaldon/wsgi.py | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/brutaldon/context_processors.py b/brutaldon/context_processors.py index 105ccb6..5e3d323 100644 --- a/brutaldon/context_processors.py +++ b/brutaldon/context_processors.py @@ -1,8 +1,12 @@ +# Module for reversing urls. +# In the sense of a reverse proxy I think. from django.urls import reverse - def bookmarklet_url(request): + # takes var request and add a /share/ to the end of the url share_url = request.build_absolute_uri(reverse("share")) + # return the share_url embedded in a string of other stuff. + # not yet sure what that other stuff is for. return { "bookmarklet_url": f"javascript:location.href='{share_url}?url='+encodeURIComponent(location.href)+';title='+encodeURIComponent(document.title)" } diff --git a/brutaldon/wsgi.py b/brutaldon/wsgi.py index 62813ed..e9f5c90 100644 --- a/brutaldon/wsgi.py +++ b/brutaldon/wsgi.py @@ -11,6 +11,8 @@ import os from django.core.wsgi import get_wsgi_application +# Setting the key DJANGO_SETTINGS_MODULE to brutaldon.settings in the process environment. +# Think of modifying the environment variables of the parent shell. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "brutaldon.settings") application = get_wsgi_application() From 2ed5ec873bbe0d54655ca6483d2edd78be04c84b Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Sat, 16 Mar 2024 14:05:42 -0400 Subject: [PATCH 05/21] Update aesthetic section in README --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8e622c5..aedc9ee 100644 --- a/README.md +++ b/README.md @@ -64,5 +64,8 @@ People love screenshots, whatever the project, so here we are. These screenshots * [X] Add support for following, blocking, and muting users. ## Aesthetic - -No automatic page updates: refresh the page to see new toots. No endless scroll: there's a "next page" link. No autocompletion of anything: use another lynx process in another screen window to look things up. UTF8 clean. +Brutaldon seeks to be a minimalist activity-pub client, taking visual and functional inspiration from the web of the 90s. HTML only websites are quite usable actually. Very little CSS and javascript should be used to polish the edges of a powerful and robust tool. + - Brutaldon will function without javascript. + - Brutaldon will function without css. + - No automatic page updates. + - UTF8 clean. From 20065ed6313f9fde99d543738f974126682d93d7 Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Mon, 1 Apr 2024 13:10:06 -0400 Subject: [PATCH 06/21] making fullbrutalism css black and white only The grey is interesting, but feels like an attempt to mimic websites of the 90's. I think FullBrutalism theme is more appropriately a: Display close to what it would look like in a text browser. --- brutaldon/static/css/fullbrutalism.css | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/brutaldon/static/css/fullbrutalism.css b/brutaldon/static/css/fullbrutalism.css index 5898034..3d59ade 100644 --- a/brutaldon/static/css/fullbrutalism.css +++ b/brutaldon/static/css/fullbrutalism.css @@ -145,7 +145,7 @@ input[type=button] {width: auto; overflow: visible;} body { font-family: Terminus, Inconsolata, Consolas, "Droid Sans Mono", "DejaVu Sans Mono", "Monaco", monospace; - background-color: #CCC; + background-color: #fff; color: #000; margin: 1em; } @@ -236,12 +236,12 @@ img.is-32x32 { .media { padding: 1em; margin: 4px; - border: 8px ridge #CCC; + border: 8px #000; overflow: auto; } .media.active-context { - background-color: #DDD; + background-color: #fff; } summary::before { @@ -332,10 +332,10 @@ img.emoji .modal-content { z-index: 60; - background-color: #CCC; + background-color: #fff; color: #000; padding: 1ex; - border: 8px ridge #CCC; + border: 8px ridge #fff; max-height: 90vh; overflow: auto; } From c240f37c818a2b574c30430f2532fbc880ab6c41 Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Wed, 17 Apr 2024 16:29:05 -0400 Subject: [PATCH 07/21] Brief updates --- Pipfile | 1 + .../0026_alter_preference_timezone.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 brutaldon/migrations/0026_alter_preference_timezone.py diff --git a/Pipfile b/Pipfile index 09e8b9c..73c0574 100644 --- a/Pipfile +++ b/Pipfile @@ -25,5 +25,6 @@ Django = "~=3.2" django-html_sanitizer = "*" inscriptis = "*" lxml = "*" +uwsgi = "*" [dev-packages] diff --git a/brutaldon/migrations/0026_alter_preference_timezone.py b/brutaldon/migrations/0026_alter_preference_timezone.py new file mode 100644 index 0000000..657fdcb --- /dev/null +++ b/brutaldon/migrations/0026_alter_preference_timezone.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.25 on 2024-04-10 13:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('brutaldon', '0025_preference_preview_sensitive'), + ] + + operations = [ + migrations.AlterField( + model_name='preference', + name='timezone', + field=models.CharField(blank=True, choices=[('Africa/Abidjan', 'Africa/Abidjan'), ('Africa/Accra', 'Africa/Accra'), ('Africa/Addis_Ababa', 'Africa/Addis_Ababa'), ('Africa/Algiers', 'Africa/Algiers'), ('Africa/Asmara', 'Africa/Asmara'), ('Africa/Bamako', 'Africa/Bamako'), ('Africa/Bangui', 'Africa/Bangui'), ('Africa/Banjul', 'Africa/Banjul'), ('Africa/Bissau', 'Africa/Bissau'), ('Africa/Blantyre', 'Africa/Blantyre'), ('Africa/Brazzaville', 'Africa/Brazzaville'), ('Africa/Bujumbura', 'Africa/Bujumbura'), ('Africa/Cairo', 'Africa/Cairo'), ('Africa/Casablanca', 'Africa/Casablanca'), ('Africa/Ceuta', 'Africa/Ceuta'), ('Africa/Conakry', 'Africa/Conakry'), ('Africa/Dakar', 'Africa/Dakar'), ('Africa/Dar_es_Salaam', 'Africa/Dar_es_Salaam'), ('Africa/Djibouti', 'Africa/Djibouti'), ('Africa/Douala', 'Africa/Douala'), ('Africa/El_Aaiun', 'Africa/El_Aaiun'), ('Africa/Freetown', 'Africa/Freetown'), ('Africa/Gaborone', 'Africa/Gaborone'), ('Africa/Harare', 'Africa/Harare'), ('Africa/Johannesburg', 'Africa/Johannesburg'), ('Africa/Juba', 'Africa/Juba'), ('Africa/Kampala', 'Africa/Kampala'), ('Africa/Khartoum', 'Africa/Khartoum'), ('Africa/Kigali', 'Africa/Kigali'), ('Africa/Kinshasa', 'Africa/Kinshasa'), ('Africa/Lagos', 'Africa/Lagos'), ('Africa/Libreville', 'Africa/Libreville'), ('Africa/Lome', 'Africa/Lome'), ('Africa/Luanda', 'Africa/Luanda'), ('Africa/Lubumbashi', 'Africa/Lubumbashi'), ('Africa/Lusaka', 'Africa/Lusaka'), ('Africa/Malabo', 'Africa/Malabo'), ('Africa/Maputo', 'Africa/Maputo'), ('Africa/Maseru', 'Africa/Maseru'), ('Africa/Mbabane', 'Africa/Mbabane'), ('Africa/Mogadishu', 'Africa/Mogadishu'), ('Africa/Monrovia', 'Africa/Monrovia'), ('Africa/Nairobi', 'Africa/Nairobi'), ('Africa/Ndjamena', 'Africa/Ndjamena'), ('Africa/Niamey', 'Africa/Niamey'), ('Africa/Nouakchott', 'Africa/Nouakchott'), ('Africa/Ouagadougou', 'Africa/Ouagadougou'), ('Africa/Porto-Novo', 'Africa/Porto-Novo'), ('Africa/Sao_Tome', 'Africa/Sao_Tome'), ('Africa/Tripoli', 'Africa/Tripoli'), ('Africa/Tunis', 'Africa/Tunis'), ('Africa/Windhoek', 'Africa/Windhoek'), ('America/Adak', 'America/Adak'), ('America/Anchorage', 'America/Anchorage'), ('America/Anguilla', 'America/Anguilla'), ('America/Antigua', 'America/Antigua'), ('America/Araguaina', 'America/Araguaina'), ('America/Argentina/Buenos_Aires', 'America/Argentina/Buenos_Aires'), ('America/Argentina/Catamarca', 'America/Argentina/Catamarca'), ('America/Argentina/Cordoba', 'America/Argentina/Cordoba'), ('America/Argentina/Jujuy', 'America/Argentina/Jujuy'), ('America/Argentina/La_Rioja', 'America/Argentina/La_Rioja'), ('America/Argentina/Mendoza', 'America/Argentina/Mendoza'), ('America/Argentina/Rio_Gallegos', 'America/Argentina/Rio_Gallegos'), ('America/Argentina/Salta', 'America/Argentina/Salta'), ('America/Argentina/San_Juan', 'America/Argentina/San_Juan'), ('America/Argentina/San_Luis', 'America/Argentina/San_Luis'), ('America/Argentina/Tucuman', 'America/Argentina/Tucuman'), ('America/Argentina/Ushuaia', 'America/Argentina/Ushuaia'), ('America/Aruba', 'America/Aruba'), ('America/Asuncion', 'America/Asuncion'), ('America/Atikokan', 'America/Atikokan'), ('America/Bahia', 'America/Bahia'), ('America/Bahia_Banderas', 'America/Bahia_Banderas'), ('America/Barbados', 'America/Barbados'), ('America/Belem', 'America/Belem'), ('America/Belize', 'America/Belize'), ('America/Blanc-Sablon', 'America/Blanc-Sablon'), ('America/Boa_Vista', 'America/Boa_Vista'), ('America/Bogota', 'America/Bogota'), ('America/Boise', 'America/Boise'), ('America/Cambridge_Bay', 'America/Cambridge_Bay'), ('America/Campo_Grande', 'America/Campo_Grande'), ('America/Cancun', 'America/Cancun'), ('America/Caracas', 'America/Caracas'), ('America/Cayenne', 'America/Cayenne'), ('America/Cayman', 'America/Cayman'), ('America/Chicago', 'America/Chicago'), ('America/Chihuahua', 'America/Chihuahua'), ('America/Ciudad_Juarez', 'America/Ciudad_Juarez'), ('America/Costa_Rica', 'America/Costa_Rica'), ('America/Creston', 'America/Creston'), ('America/Cuiaba', 'America/Cuiaba'), ('America/Curacao', 'America/Curacao'), ('America/Danmarkshavn', 'America/Danmarkshavn'), ('America/Dawson', 'America/Dawson'), ('America/Dawson_Creek', 'America/Dawson_Creek'), ('America/Denver', 'America/Denver'), ('America/Detroit', 'America/Detroit'), ('America/Dominica', 'America/Dominica'), ('America/Edmonton', 'America/Edmonton'), ('America/Eirunepe', 'America/Eirunepe'), ('America/El_Salvador', 'America/El_Salvador'), ('America/Fort_Nelson', 'America/Fort_Nelson'), ('America/Fortaleza', 'America/Fortaleza'), ('America/Glace_Bay', 'America/Glace_Bay'), ('America/Goose_Bay', 'America/Goose_Bay'), ('America/Grand_Turk', 'America/Grand_Turk'), ('America/Grenada', 'America/Grenada'), ('America/Guadeloupe', 'America/Guadeloupe'), ('America/Guatemala', 'America/Guatemala'), ('America/Guayaquil', 'America/Guayaquil'), ('America/Guyana', 'America/Guyana'), ('America/Halifax', 'America/Halifax'), ('America/Havana', 'America/Havana'), ('America/Hermosillo', 'America/Hermosillo'), ('America/Indiana/Indianapolis', 'America/Indiana/Indianapolis'), ('America/Indiana/Knox', 'America/Indiana/Knox'), ('America/Indiana/Marengo', 'America/Indiana/Marengo'), ('America/Indiana/Petersburg', 'America/Indiana/Petersburg'), ('America/Indiana/Tell_City', 'America/Indiana/Tell_City'), ('America/Indiana/Vevay', 'America/Indiana/Vevay'), ('America/Indiana/Vincennes', 'America/Indiana/Vincennes'), ('America/Indiana/Winamac', 'America/Indiana/Winamac'), ('America/Inuvik', 'America/Inuvik'), ('America/Iqaluit', 'America/Iqaluit'), ('America/Jamaica', 'America/Jamaica'), ('America/Juneau', 'America/Juneau'), ('America/Kentucky/Louisville', 'America/Kentucky/Louisville'), ('America/Kentucky/Monticello', 'America/Kentucky/Monticello'), ('America/Kralendijk', 'America/Kralendijk'), ('America/La_Paz', 'America/La_Paz'), ('America/Lima', 'America/Lima'), ('America/Los_Angeles', 'America/Los_Angeles'), ('America/Lower_Princes', 'America/Lower_Princes'), ('America/Maceio', 'America/Maceio'), ('America/Managua', 'America/Managua'), ('America/Manaus', 'America/Manaus'), ('America/Marigot', 'America/Marigot'), ('America/Martinique', 'America/Martinique'), ('America/Matamoros', 'America/Matamoros'), ('America/Mazatlan', 'America/Mazatlan'), ('America/Menominee', 'America/Menominee'), ('America/Merida', 'America/Merida'), ('America/Metlakatla', 'America/Metlakatla'), ('America/Mexico_City', 'America/Mexico_City'), ('America/Miquelon', 'America/Miquelon'), ('America/Moncton', 'America/Moncton'), ('America/Monterrey', 'America/Monterrey'), ('America/Montevideo', 'America/Montevideo'), ('America/Montserrat', 'America/Montserrat'), ('America/Nassau', 'America/Nassau'), ('America/New_York', 'America/New_York'), ('America/Nome', 'America/Nome'), ('America/Noronha', 'America/Noronha'), ('America/North_Dakota/Beulah', 'America/North_Dakota/Beulah'), ('America/North_Dakota/Center', 'America/North_Dakota/Center'), ('America/North_Dakota/New_Salem', 'America/North_Dakota/New_Salem'), ('America/Nuuk', 'America/Nuuk'), ('America/Ojinaga', 'America/Ojinaga'), ('America/Panama', 'America/Panama'), ('America/Paramaribo', 'America/Paramaribo'), ('America/Phoenix', 'America/Phoenix'), ('America/Port-au-Prince', 'America/Port-au-Prince'), ('America/Port_of_Spain', 'America/Port_of_Spain'), ('America/Porto_Velho', 'America/Porto_Velho'), ('America/Puerto_Rico', 'America/Puerto_Rico'), ('America/Punta_Arenas', 'America/Punta_Arenas'), ('America/Rankin_Inlet', 'America/Rankin_Inlet'), ('America/Recife', 'America/Recife'), ('America/Regina', 'America/Regina'), ('America/Resolute', 'America/Resolute'), ('America/Rio_Branco', 'America/Rio_Branco'), ('America/Santarem', 'America/Santarem'), ('America/Santiago', 'America/Santiago'), ('America/Santo_Domingo', 'America/Santo_Domingo'), ('America/Sao_Paulo', 'America/Sao_Paulo'), ('America/Scoresbysund', 'America/Scoresbysund'), ('America/Sitka', 'America/Sitka'), ('America/St_Barthelemy', 'America/St_Barthelemy'), ('America/St_Johns', 'America/St_Johns'), ('America/St_Kitts', 'America/St_Kitts'), ('America/St_Lucia', 'America/St_Lucia'), ('America/St_Thomas', 'America/St_Thomas'), ('America/St_Vincent', 'America/St_Vincent'), ('America/Swift_Current', 'America/Swift_Current'), ('America/Tegucigalpa', 'America/Tegucigalpa'), ('America/Thule', 'America/Thule'), ('America/Tijuana', 'America/Tijuana'), ('America/Toronto', 'America/Toronto'), ('America/Tortola', 'America/Tortola'), ('America/Vancouver', 'America/Vancouver'), ('America/Whitehorse', 'America/Whitehorse'), ('America/Winnipeg', 'America/Winnipeg'), ('America/Yakutat', 'America/Yakutat'), ('Antarctica/Casey', 'Antarctica/Casey'), ('Antarctica/Davis', 'Antarctica/Davis'), ('Antarctica/DumontDUrville', 'Antarctica/DumontDUrville'), ('Antarctica/Macquarie', 'Antarctica/Macquarie'), ('Antarctica/Mawson', 'Antarctica/Mawson'), ('Antarctica/McMurdo', 'Antarctica/McMurdo'), ('Antarctica/Palmer', 'Antarctica/Palmer'), ('Antarctica/Rothera', 'Antarctica/Rothera'), ('Antarctica/Syowa', 'Antarctica/Syowa'), ('Antarctica/Troll', 'Antarctica/Troll'), ('Antarctica/Vostok', 'Antarctica/Vostok'), ('Arctic/Longyearbyen', 'Arctic/Longyearbyen'), ('Asia/Aden', 'Asia/Aden'), ('Asia/Almaty', 'Asia/Almaty'), ('Asia/Amman', 'Asia/Amman'), ('Asia/Anadyr', 'Asia/Anadyr'), ('Asia/Aqtau', 'Asia/Aqtau'), ('Asia/Aqtobe', 'Asia/Aqtobe'), ('Asia/Ashgabat', 'Asia/Ashgabat'), ('Asia/Atyrau', 'Asia/Atyrau'), ('Asia/Baghdad', 'Asia/Baghdad'), ('Asia/Bahrain', 'Asia/Bahrain'), ('Asia/Baku', 'Asia/Baku'), ('Asia/Bangkok', 'Asia/Bangkok'), ('Asia/Barnaul', 'Asia/Barnaul'), ('Asia/Beirut', 'Asia/Beirut'), ('Asia/Bishkek', 'Asia/Bishkek'), ('Asia/Brunei', 'Asia/Brunei'), ('Asia/Chita', 'Asia/Chita'), ('Asia/Choibalsan', 'Asia/Choibalsan'), ('Asia/Colombo', 'Asia/Colombo'), ('Asia/Damascus', 'Asia/Damascus'), ('Asia/Dhaka', 'Asia/Dhaka'), ('Asia/Dili', 'Asia/Dili'), ('Asia/Dubai', 'Asia/Dubai'), ('Asia/Dushanbe', 'Asia/Dushanbe'), ('Asia/Famagusta', 'Asia/Famagusta'), ('Asia/Gaza', 'Asia/Gaza'), ('Asia/Hebron', 'Asia/Hebron'), ('Asia/Ho_Chi_Minh', 'Asia/Ho_Chi_Minh'), ('Asia/Hong_Kong', 'Asia/Hong_Kong'), ('Asia/Hovd', 'Asia/Hovd'), ('Asia/Irkutsk', 'Asia/Irkutsk'), ('Asia/Jakarta', 'Asia/Jakarta'), ('Asia/Jayapura', 'Asia/Jayapura'), ('Asia/Jerusalem', 'Asia/Jerusalem'), ('Asia/Kabul', 'Asia/Kabul'), ('Asia/Kamchatka', 'Asia/Kamchatka'), ('Asia/Karachi', 'Asia/Karachi'), ('Asia/Kathmandu', 'Asia/Kathmandu'), ('Asia/Khandyga', 'Asia/Khandyga'), ('Asia/Kolkata', 'Asia/Kolkata'), ('Asia/Krasnoyarsk', 'Asia/Krasnoyarsk'), ('Asia/Kuala_Lumpur', 'Asia/Kuala_Lumpur'), ('Asia/Kuching', 'Asia/Kuching'), ('Asia/Kuwait', 'Asia/Kuwait'), ('Asia/Macau', 'Asia/Macau'), ('Asia/Magadan', 'Asia/Magadan'), ('Asia/Makassar', 'Asia/Makassar'), ('Asia/Manila', 'Asia/Manila'), ('Asia/Muscat', 'Asia/Muscat'), ('Asia/Nicosia', 'Asia/Nicosia'), ('Asia/Novokuznetsk', 'Asia/Novokuznetsk'), ('Asia/Novosibirsk', 'Asia/Novosibirsk'), ('Asia/Omsk', 'Asia/Omsk'), ('Asia/Oral', 'Asia/Oral'), ('Asia/Phnom_Penh', 'Asia/Phnom_Penh'), ('Asia/Pontianak', 'Asia/Pontianak'), ('Asia/Pyongyang', 'Asia/Pyongyang'), ('Asia/Qatar', 'Asia/Qatar'), ('Asia/Qostanay', 'Asia/Qostanay'), ('Asia/Qyzylorda', 'Asia/Qyzylorda'), ('Asia/Riyadh', 'Asia/Riyadh'), ('Asia/Sakhalin', 'Asia/Sakhalin'), ('Asia/Samarkand', 'Asia/Samarkand'), ('Asia/Seoul', 'Asia/Seoul'), ('Asia/Shanghai', 'Asia/Shanghai'), ('Asia/Singapore', 'Asia/Singapore'), ('Asia/Srednekolymsk', 'Asia/Srednekolymsk'), ('Asia/Taipei', 'Asia/Taipei'), ('Asia/Tashkent', 'Asia/Tashkent'), ('Asia/Tbilisi', 'Asia/Tbilisi'), ('Asia/Tehran', 'Asia/Tehran'), ('Asia/Thimphu', 'Asia/Thimphu'), ('Asia/Tokyo', 'Asia/Tokyo'), ('Asia/Tomsk', 'Asia/Tomsk'), ('Asia/Ulaanbaatar', 'Asia/Ulaanbaatar'), ('Asia/Urumqi', 'Asia/Urumqi'), ('Asia/Ust-Nera', 'Asia/Ust-Nera'), ('Asia/Vientiane', 'Asia/Vientiane'), ('Asia/Vladivostok', 'Asia/Vladivostok'), ('Asia/Yakutsk', 'Asia/Yakutsk'), ('Asia/Yangon', 'Asia/Yangon'), ('Asia/Yekaterinburg', 'Asia/Yekaterinburg'), ('Asia/Yerevan', 'Asia/Yerevan'), ('Atlantic/Azores', 'Atlantic/Azores'), ('Atlantic/Bermuda', 'Atlantic/Bermuda'), ('Atlantic/Canary', 'Atlantic/Canary'), ('Atlantic/Cape_Verde', 'Atlantic/Cape_Verde'), ('Atlantic/Faroe', 'Atlantic/Faroe'), ('Atlantic/Madeira', 'Atlantic/Madeira'), ('Atlantic/Reykjavik', 'Atlantic/Reykjavik'), ('Atlantic/South_Georgia', 'Atlantic/South_Georgia'), ('Atlantic/St_Helena', 'Atlantic/St_Helena'), ('Atlantic/Stanley', 'Atlantic/Stanley'), ('Australia/Adelaide', 'Australia/Adelaide'), ('Australia/Brisbane', 'Australia/Brisbane'), ('Australia/Broken_Hill', 'Australia/Broken_Hill'), ('Australia/Darwin', 'Australia/Darwin'), ('Australia/Eucla', 'Australia/Eucla'), ('Australia/Hobart', 'Australia/Hobart'), ('Australia/Lindeman', 'Australia/Lindeman'), ('Australia/Lord_Howe', 'Australia/Lord_Howe'), ('Australia/Melbourne', 'Australia/Melbourne'), ('Australia/Perth', 'Australia/Perth'), ('Australia/Sydney', 'Australia/Sydney'), ('Canada/Atlantic', 'Canada/Atlantic'), ('Canada/Central', 'Canada/Central'), ('Canada/Eastern', 'Canada/Eastern'), ('Canada/Mountain', 'Canada/Mountain'), ('Canada/Newfoundland', 'Canada/Newfoundland'), ('Canada/Pacific', 'Canada/Pacific'), ('Europe/Amsterdam', 'Europe/Amsterdam'), ('Europe/Andorra', 'Europe/Andorra'), ('Europe/Astrakhan', 'Europe/Astrakhan'), ('Europe/Athens', 'Europe/Athens'), ('Europe/Belgrade', 'Europe/Belgrade'), ('Europe/Berlin', 'Europe/Berlin'), ('Europe/Bratislava', 'Europe/Bratislava'), ('Europe/Brussels', 'Europe/Brussels'), ('Europe/Bucharest', 'Europe/Bucharest'), ('Europe/Budapest', 'Europe/Budapest'), ('Europe/Busingen', 'Europe/Busingen'), ('Europe/Chisinau', 'Europe/Chisinau'), ('Europe/Copenhagen', 'Europe/Copenhagen'), ('Europe/Dublin', 'Europe/Dublin'), ('Europe/Gibraltar', 'Europe/Gibraltar'), ('Europe/Guernsey', 'Europe/Guernsey'), ('Europe/Helsinki', 'Europe/Helsinki'), ('Europe/Isle_of_Man', 'Europe/Isle_of_Man'), ('Europe/Istanbul', 'Europe/Istanbul'), ('Europe/Jersey', 'Europe/Jersey'), ('Europe/Kaliningrad', 'Europe/Kaliningrad'), ('Europe/Kirov', 'Europe/Kirov'), ('Europe/Kyiv', 'Europe/Kyiv'), ('Europe/Lisbon', 'Europe/Lisbon'), ('Europe/Ljubljana', 'Europe/Ljubljana'), ('Europe/London', 'Europe/London'), ('Europe/Luxembourg', 'Europe/Luxembourg'), ('Europe/Madrid', 'Europe/Madrid'), ('Europe/Malta', 'Europe/Malta'), ('Europe/Mariehamn', 'Europe/Mariehamn'), ('Europe/Minsk', 'Europe/Minsk'), ('Europe/Monaco', 'Europe/Monaco'), ('Europe/Moscow', 'Europe/Moscow'), ('Europe/Oslo', 'Europe/Oslo'), ('Europe/Paris', 'Europe/Paris'), ('Europe/Podgorica', 'Europe/Podgorica'), ('Europe/Prague', 'Europe/Prague'), ('Europe/Riga', 'Europe/Riga'), ('Europe/Rome', 'Europe/Rome'), ('Europe/Samara', 'Europe/Samara'), ('Europe/San_Marino', 'Europe/San_Marino'), ('Europe/Sarajevo', 'Europe/Sarajevo'), ('Europe/Saratov', 'Europe/Saratov'), ('Europe/Simferopol', 'Europe/Simferopol'), ('Europe/Skopje', 'Europe/Skopje'), ('Europe/Sofia', 'Europe/Sofia'), ('Europe/Stockholm', 'Europe/Stockholm'), ('Europe/Tallinn', 'Europe/Tallinn'), ('Europe/Tirane', 'Europe/Tirane'), ('Europe/Ulyanovsk', 'Europe/Ulyanovsk'), ('Europe/Vaduz', 'Europe/Vaduz'), ('Europe/Vatican', 'Europe/Vatican'), ('Europe/Vienna', 'Europe/Vienna'), ('Europe/Vilnius', 'Europe/Vilnius'), ('Europe/Volgograd', 'Europe/Volgograd'), ('Europe/Warsaw', 'Europe/Warsaw'), ('Europe/Zagreb', 'Europe/Zagreb'), ('Europe/Zurich', 'Europe/Zurich'), ('GMT', 'GMT'), ('Indian/Antananarivo', 'Indian/Antananarivo'), ('Indian/Chagos', 'Indian/Chagos'), ('Indian/Christmas', 'Indian/Christmas'), ('Indian/Cocos', 'Indian/Cocos'), ('Indian/Comoro', 'Indian/Comoro'), ('Indian/Kerguelen', 'Indian/Kerguelen'), ('Indian/Mahe', 'Indian/Mahe'), ('Indian/Maldives', 'Indian/Maldives'), ('Indian/Mauritius', 'Indian/Mauritius'), ('Indian/Mayotte', 'Indian/Mayotte'), ('Indian/Reunion', 'Indian/Reunion'), ('Pacific/Apia', 'Pacific/Apia'), ('Pacific/Auckland', 'Pacific/Auckland'), ('Pacific/Bougainville', 'Pacific/Bougainville'), ('Pacific/Chatham', 'Pacific/Chatham'), ('Pacific/Chuuk', 'Pacific/Chuuk'), ('Pacific/Easter', 'Pacific/Easter'), ('Pacific/Efate', 'Pacific/Efate'), ('Pacific/Fakaofo', 'Pacific/Fakaofo'), ('Pacific/Fiji', 'Pacific/Fiji'), ('Pacific/Funafuti', 'Pacific/Funafuti'), ('Pacific/Galapagos', 'Pacific/Galapagos'), ('Pacific/Gambier', 'Pacific/Gambier'), ('Pacific/Guadalcanal', 'Pacific/Guadalcanal'), ('Pacific/Guam', 'Pacific/Guam'), ('Pacific/Honolulu', 'Pacific/Honolulu'), ('Pacific/Kanton', 'Pacific/Kanton'), ('Pacific/Kiritimati', 'Pacific/Kiritimati'), ('Pacific/Kosrae', 'Pacific/Kosrae'), ('Pacific/Kwajalein', 'Pacific/Kwajalein'), ('Pacific/Majuro', 'Pacific/Majuro'), ('Pacific/Marquesas', 'Pacific/Marquesas'), ('Pacific/Midway', 'Pacific/Midway'), ('Pacific/Nauru', 'Pacific/Nauru'), ('Pacific/Niue', 'Pacific/Niue'), ('Pacific/Norfolk', 'Pacific/Norfolk'), ('Pacific/Noumea', 'Pacific/Noumea'), ('Pacific/Pago_Pago', 'Pacific/Pago_Pago'), ('Pacific/Palau', 'Pacific/Palau'), ('Pacific/Pitcairn', 'Pacific/Pitcairn'), ('Pacific/Pohnpei', 'Pacific/Pohnpei'), ('Pacific/Port_Moresby', 'Pacific/Port_Moresby'), ('Pacific/Rarotonga', 'Pacific/Rarotonga'), ('Pacific/Saipan', 'Pacific/Saipan'), ('Pacific/Tahiti', 'Pacific/Tahiti'), ('Pacific/Tarawa', 'Pacific/Tarawa'), ('Pacific/Tongatapu', 'Pacific/Tongatapu'), ('Pacific/Wake', 'Pacific/Wake'), ('Pacific/Wallis', 'Pacific/Wallis'), ('US/Alaska', 'US/Alaska'), ('US/Arizona', 'US/Arizona'), ('US/Central', 'US/Central'), ('US/Eastern', 'US/Eastern'), ('US/Hawaii', 'US/Hawaii'), ('US/Mountain', 'US/Mountain'), ('US/Pacific', 'US/Pacific'), ('UTC', 'UTC')], default='UTC', max_length=80, null=True), + ), + ] From 834324813bdd25aa81b3d01430e469419f45802c Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Thu, 18 Apr 2024 15:57:42 -0400 Subject: [PATCH 08/21] Remove all css classes and id in templates. imo brutal css addresses semantic html only, using classes as a last resort. --- brutaldon/templates/about.html | 7 +- .../templates/accounts/account_partial.html | 14 +- brutaldon/templates/accounts/list.html | 4 +- brutaldon/templates/base.html | 114 ++++++-------- brutaldon/templates/filters/create.html | 48 +++--- brutaldon/templates/filters/delete.html | 26 ++-- brutaldon/templates/filters/edit.html | 48 +++--- brutaldon/templates/filters/list.html | 15 +- brutaldon/templates/intercooler/block.html | 8 +- brutaldon/templates/intercooler/boost.html | 8 +- brutaldon/templates/intercooler/fav.html | 8 +- brutaldon/templates/intercooler/follow.html | 12 +- brutaldon/templates/intercooler/mute.html | 6 +- brutaldon/templates/intercooler/post.html | 8 +- brutaldon/templates/intercooler/search.html | 26 ++-- brutaldon/templates/intercooler/users.html | 2 +- brutaldon/templates/main/block.html | 28 ++-- brutaldon/templates/main/boost.html | 20 +-- brutaldon/templates/main/delete.html | 14 +- brutaldon/templates/main/emoji.html | 14 +- brutaldon/templates/main/fav.html | 20 +-- brutaldon/templates/main/follow.html | 30 ++-- brutaldon/templates/main/local_timeline.html | 6 +- brutaldon/templates/main/mute.html | 28 ++-- brutaldon/templates/main/notifications.html | 32 ++-- brutaldon/templates/main/post.html | 4 +- .../templates/main/post_minimal_partial.html | 46 +++--- brutaldon/templates/main/post_partial.html | 117 +++++++------- brutaldon/templates/main/public_timeline.html | 6 +- brutaldon/templates/main/redraft.html | 10 +- brutaldon/templates/main/reply.html | 8 +- brutaldon/templates/main/search.html | 20 +-- brutaldon/templates/main/search_results.html | 34 ++-- brutaldon/templates/main/thread.html | 4 +- brutaldon/templates/main/timeline.html | 26 ++-- brutaldon/templates/main/toot_partial.html | 93 ++++++----- brutaldon/templates/main/user.html | 70 ++++----- .../templates/polls/completed_partial.html | 8 +- brutaldon/templates/polls/new_partial.html | 16 +- brutaldon/templates/privacy.html | 14 +- brutaldon/templates/requests/list.html | 4 +- .../templates/requests/request_partial.html | 14 +- brutaldon/templates/setup/login-oauth.html | 18 +-- brutaldon/templates/setup/login.html | 36 ++--- brutaldon/templates/setup/settings.html | 146 +++++++++--------- 45 files changed, 595 insertions(+), 645 deletions(-) diff --git a/brutaldon/templates/about.html b/brutaldon/templates/about.html index 26c1224..0878b25 100644 --- a/brutaldon/templates/about.html +++ b/brutaldon/templates/about.html @@ -7,10 +7,9 @@ -

Brutaldon

-

a brutalist web interface for Mastodon

-
- +

Brutaldon

+

a brutalist web interface for Mastodon

+

Brutaldon is a client for Mastodon. You can use it to log in to any Mastodon instance from any browser, including text browsers such as lynx.

diff --git a/brutaldon/templates/accounts/account_partial.html b/brutaldon/templates/accounts/account_partial.html index 56d9a6c..2fa1d5d 100644 --- a/brutaldon/templates/accounts/account_partial.html +++ b/brutaldon/templates/accounts/account_partial.html @@ -1,18 +1,18 @@ -
-
-

+

+
+

{{ account.user.acct }}

-
+
{{ account.user.display_name }} ({{ account.user.username }})
-
+
{% csrf_token %} - - + +
diff --git a/brutaldon/templates/accounts/list.html b/brutaldon/templates/accounts/list.html index c3ac2e9..edbe94c 100644 --- a/brutaldon/templates/accounts/list.html +++ b/brutaldon/templates/accounts/list.html @@ -2,8 +2,8 @@ {% load widget_tweaks %} {% block content %} -
-

Signed-in accounts

+
+

Signed-in accounts

{% if not accounts %}

No accounts.

diff --git a/brutaldon/templates/base.html b/brutaldon/templates/base.html index 81b2161..213bc22 100644 --- a/brutaldon/templates/base.html +++ b/brutaldon/templates/base.html @@ -15,17 +15,27 @@ {% endif %} {% endblock %} - {% if not preferences %} - - - - + {% if own_acct %} + + {% else %} + + {% endif %} + + + + + + + + + +{% if not preferences %} + {% else %} {% if not preferences.theme.is_brutalist %} - - - {% endif %} {% if not preferences.no_javascript %} @@ -52,21 +56,6 @@ {% endblock %} {% endif %} {% endif %} - {% if own_acct %} - - {% else %} - - {% endif %} - - - - - - - - @@ -76,29 +65,28 @@
{% block navbar %} -
{% endif %} From 76fbc426d09da92feb58eca426c7b7238186986f Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Sat, 14 Sep 2024 18:59:45 -0400 Subject: [PATCH 17/21] trying to get search working --- brutaldon/static/css/brutal-css.css | 4 ++++ brutaldon/templates/main/search.html | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/brutaldon/static/css/brutal-css.css b/brutaldon/static/css/brutal-css.css index 6329fec..4bd64a6 100644 --- a/brutaldon/static/css/brutal-css.css +++ b/brutaldon/static/css/brutal-css.css @@ -11,3 +11,7 @@ figure > p { margin-top: 0rem; margin-bottom: 0rem; } + +nav > ul { + list-style-type: none; +} diff --git a/brutaldon/templates/main/search.html b/brutaldon/templates/main/search.html index c83c0d8..11bb6e9 100644 --- a/brutaldon/templates/main/search.html +++ b/brutaldon/templates/main/search.html @@ -15,17 +15,17 @@
-
+
- +
-
+
From f9981670f2dbb59326de5ebcab659900f62be8db Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Fri, 20 Sep 2024 10:20:57 -0400 Subject: [PATCH 18/21] removing toot form from timeline views it was set up to add an extra h1 tag in the document, which is bad practice. The easiest path forward was simply to remove it. --- brutaldon/templates/main/timeline.html | 7 ------- 1 file changed, 7 deletions(-) diff --git a/brutaldon/templates/main/timeline.html b/brutaldon/templates/main/timeline.html index d229d2f..fc009b6 100644 --- a/brutaldon/templates/main/timeline.html +++ b/brutaldon/templates/main/timeline.html @@ -14,13 +14,6 @@ {% endblock %} {% block content %} - {% if form %} -

Post

-
- {% include "main/post_minimal_partial.html" %} -
- - {% endif %}

Your {{ timeline_name }} timeline

{% for toot in toots %} From 41588c42efdb6d8d19f5a1fd3405dad20f648322 Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Sun, 22 Sep 2024 16:10:18 -0400 Subject: [PATCH 19/21] moving icons. needs polish --- brutaldon/templates/main/toot_partial.html | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/brutaldon/templates/main/toot_partial.html b/brutaldon/templates/main/toot_partial.html index 00d88f5..8835f52 100644 --- a/brutaldon/templates/main/toot_partial.html +++ b/brutaldon/templates/main/toot_partial.html @@ -11,6 +11,8 @@
{% endif %} +
+
- {% if reblog %} -

- - - -

- {% endif %}
-
-

{{ toot.account.display_name | fix_emojos:toot.account.emojis | strip_html |safe}} @@ -36,6 +29,13 @@ {{ toot.created_at |humane_time }} {% if reblog %} +

+

+ + + +

+

Boosted by @{{ reblog_by }} {% endif %} From 18526befb08da69b1471b54981ab0e30c34f2a26 Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Wed, 23 Oct 2024 16:42:14 -0400 Subject: [PATCH 20/21] changing django version to 4.2 from 3.2 --- Pipfile | 2 +- brutaldon/settings.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Pipfile b/Pipfile index 09e8b9c..2d50d91 100644 --- a/Pipfile +++ b/Pipfile @@ -21,7 +21,7 @@ requests = "*" six = "*" "urllib3" = "*" webencodings = "*" -Django = "~=3.2" +Django = "~=4.2" django-html_sanitizer = "*" inscriptis = "*" lxml = "*" diff --git a/brutaldon/settings.py b/brutaldon/settings.py index 5fe9ea0..8d0610d 100644 --- a/brutaldon/settings.py +++ b/brutaldon/settings.py @@ -12,6 +12,14 @@ https://docs.djangoproject.com/en/2.0/ref/settings/ import os +# Work around issue in sanitizer +import django +try: + from django.utils.encoding import smart_text +except: + from django.utils.encoding import smart_str + django.utils.encoding.smart_text = smart_str + # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) From 83e31008fed07d02573e8ff17cf055077ed71df4 Mon Sep 17 00:00:00 2001 From: Dorian Wood Date: Wed, 23 Oct 2024 16:43:40 -0400 Subject: [PATCH 21/21] moving avatars in the document structure --- brutaldon/templates/main/toot_partial.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/brutaldon/templates/main/toot_partial.html b/brutaldon/templates/main/toot_partial.html index 8835f52..2083f8f 100644 --- a/brutaldon/templates/main/toot_partial.html +++ b/brutaldon/templates/main/toot_partial.html @@ -13,7 +13,7 @@
-
+