David Yip
8343f56b2c
Whoops, forgot to clean up a conflict.
7 years ago
Yamagishi Kazutoshi
89c86ee521
Weblate translations (2018-06-02) ( #7705 )
...
* Translated using Weblate (Korean)
Currently translated at 100.0% (303 of 303 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ko/
* Translated using Weblate (Chinese (Hong Kong))
Currently translated at 99.6% (302 of 303 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/zh_Hant_HK/
* Translated using Weblate (Chinese (Hong Kong))
Currently translated at 99.1% (616 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/zh_Hant_HK/
* Translated using Weblate (Chinese (Hong Kong))
Currently translated at 100.0% (62 of 62 strings)
Translation: Mastodon/Devise
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/devise/zh_Hant_HK/
* Translated using Weblate (Slovenian)
Currently translated at 14.4% (90 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sl/
* Translated using Weblate (Slovak)
Currently translated at 100.0% (303 of 303 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/sk/
* Translated using Weblate (Japanese)
Currently translated at 100.0% (303 of 303 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ja/
* Translated using Weblate (Esperanto)
Currently translated at 100.0% (303 of 303 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/eo/
* Translated using Weblate (Dutch)
Currently translated at 100.0% (62 of 62 strings)
Translation: Mastodon/Devise
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/devise/nl/
* Translated using Weblate (Dutch)
Currently translated at 100.0% (621 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/nl/
* Translated using Weblate (Persian)
Currently translated at 100.0% (303 of 303 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fa/
* Translated using Weblate (Occitan)
Currently translated at 100.0% (303 of 303 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/oc/
* Translated using Weblate (Occitan)
Currently translated at 100.0% (303 of 303 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/oc/
to check if with O or U
* Translated using Weblate (Occitan)
Currently translated at 98.0% (609 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/oc/
* Translated using Weblate (Dutch)
Currently translated at 100.0% (303 of 303 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/nl/
* Translated using Weblate (Basque)
Currently translated at 100.0% (621 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (62 of 62 strings)
Translation: Mastodon/Devise
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/devise/eu/
* Translated using Weblate (Korean)
Currently translated at 100.0% (66 of 66 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/ko/
* Translated using Weblate (Korean)
Currently translated at 99.6% (619 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ko/
* Translated using Weblate (Basque)
Currently translated at 100.0% (66 of 66 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (303 of 303 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (621 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.6% (302 of 303 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/pt_BR/
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.6% (619 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/pt_BR/
* Translated using Weblate (Basque)
Currently translated at 100.0% (76 of 76 strings)
Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/eu/
* i18n-tasks normalize && yarn manage:translations
7 years ago
Eugen Rochko
6e6c0e9613
Use different algorithm for trending tags ( #7697 )
7 years ago
Eugen Rochko
8d6e4e0485
Fix margin between compose warning, reply indicator and textarea ( #7701 )
7 years ago
Eugen Rochko
73c0c36e7b
Improve trends layout ( #7700 )
...
* Allow collapsing trends, responsively hide trends
* Add trends column
7 years ago
Yamagishi Kazutoshi
69b45350fe
Add loading indicator for trending tags ( #7693 )
7 years ago
Yamagishi Kazutoshi
bfa12239e8
Update ESLint for Code Climate ( #7696 )
...
* Update babel-eslint to version 8.2.3
* Update eslint to version 4.19.1
* Update eslint-plugin-promise to version 3.8.0
* Update eslint-plugin-react to version 7.8.2
* Upgrade eslint-plugin-jsx-a11y to version 6.0.3
* yarn test:lint --fix
7 years ago
Yamagishi Kazutoshi
15ce60f610
Fix duplicate key attributes ( #7694 )
7 years ago
Spencer Alves
e5f25a73f2
Adjust spacing between status icons
7 years ago
Eugen Rochko
1e938b966e
Exclude unlisted, private and direct toots from affecting trends ( #7686 )
7 years ago
Eugen Rochko
0ce5339a7b
Make the refresh trends button refresh trends ( #7685 )
7 years ago
Mélanie Chauvel (ariasuni)
691107263c
Put the CW field between the toot we are replying to and the toot field ( #7508 )
...
* Remove Collapsable and use CSS instead
* Put the CW field between the toot we are replying to and the toot field
* Use same spacing between all fields in the composing column
7 years ago
Thibaut Girka
b9fdeceb3c
Make active bookmarks red ( fixes #493 )
7 years ago
Thibaut Girka
e396fbfe3b
Fix direct timeline
7 years ago
Yamagishi Kazutoshi
648a22637c
Weblate translations (2018-05-31) ( #7681 )
...
* Translated using Weblate (Basque)
Currently translated at 100.0% (2 of 2 strings)
Translation: Mastodon/Activerecord
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/activerecord/eu/
* Translated using Weblate (Corsican)
Currently translated at 100.0% (76 of 76 strings)
Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/co/
* Translated using Weblate (Italian)
Currently translated at 100.0% (66 of 66 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/it/
* Translated using Weblate (Galician)
Currently translated at 100.0% (621 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/gl/
* Translated using Weblate (Basque)
Currently translated at 99.3% (297 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/eu/
* Translated using Weblate (Basque)
Currently translated at 55.2% (42 of 76 strings)
Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/eu/
* Translated using Weblate (Basque)
Currently translated at 8.5% (53 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/
* Translated using Weblate (Basque)
Currently translated at 9.0% (56 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/
* Translated using Weblate (Finnish)
Currently translated at 98.9% (296 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fi/
* Translated using Weblate (Finnish)
Currently translated at 98.9% (296 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fi/
* Translated using Weblate (Finnish)
Currently translated at 98.9% (296 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/fi/
* Translated using Weblate (Corsican)
Currently translated at 100.0% (66 of 66 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/co/
* Translated using Weblate (Corsican)
Currently translated at 99.6% (619 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/co/
* Translated using Weblate (Corsican)
Currently translated at 100.0% (299 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/co/
* Translated using Weblate (Corsican)
Currently translated at 100.0% (299 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/co/
* Translated using Weblate (Basque)
Currently translated at 41.3% (257 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (299 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (66 of 66 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (62 of 62 strings)
Translation: Mastodon/Devise
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/devise/eu/
* Translated using Weblate (Basque)
Currently translated at 56.5% (43 of 76 strings)
Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/eu/
* Translated using Weblate (Arabic)
Currently translated at 90.8% (564 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/
* Translated using Weblate (German)
Currently translated at 96.9% (64 of 66 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/de/
* Translated using Weblate (German)
Currently translated at 98.4% (65 of 66 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/de/
* Translated using Weblate (Basque)
Currently translated at 42.9% (267 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/
* Translated using Weblate (Italian)
Currently translated at 100.0% (66 of 66 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/it/
* Translated using Weblate (Italian)
Currently translated at 100.0% (299 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/it/
* Translated using Weblate (Basque)
Currently translated at 71.0% (54 of 76 strings)
Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/eu/
* Translated using Weblate (Slovak)
Currently translated at 95.3% (592 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sk/
* Translated using Weblate (Basque)
Currently translated at 43.8% (272 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/
* Translated using Weblate (Japanese)
Currently translated at 100.0% (299 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ja/
* Translated using Weblate (Basque)
Currently translated at 100.0% (76 of 76 strings)
Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (76 of 76 strings)
Translation: Mastodon/Doorkeeper
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/doorkeeper/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (66 of 66 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (62 of 62 strings)
Translation: Mastodon/Devise
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/devise/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (299 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (621 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (621 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/
* Translated using Weblate (Basque)
Currently translated at 100.0% (621 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/eu/
* Translated using Weblate (Slovak)
Currently translated at 100.0% (66 of 66 strings)
Translation: Mastodon/Preferences
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/simple_form/sk/
* Translated using Weblate (Slovak)
Currently translated at 95.3% (592 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/sk/
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.5% (618 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/pt_BR/
* Translated using Weblate (Portuguese)
Currently translated at 83.7% (520 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/pt/
* Translated using Weblate (Japanese)
Currently translated at 100.0% (299 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/ja/
* Translated using Weblate (Slovak)
Currently translated at 100.0% (299 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/sk/
* Translated using Weblate (Arabic)
Currently translated at 91.9% (571 of 621 strings)
Translation: Mastodon/Backend
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/backend/ar/
* yarn manage:translations && i18n-tasks noramlize && i18n-tasks remove-unused
* remove body_html: ''
* Translated using Weblate (Galician)
Currently translated at 100.0% (299 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/gl/
* Translated using Weblate (Basque)
Currently translated at 100.0% (299 of 299 strings)
Translation: Mastodon/React
Translate-URL: https://weblate.joinmastodon.org/projects/mastodon/frontend/eu/
* yarn manage:translations
7 years ago
Marcin Mikołajczak
063d4d4ccc
🌍 : 🇵🇱 ⬆️ ( #7679 )
...
* 🌍 : 🇵🇱 ⬆️
Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
* yarn manage:translations
7 years ago
Eugen Rochko
ad40bf5e0c
Speed up some rake tasks by moving execution to Sidekiq ( #7678 )
...
* Speed up some rake tasks by moving execution to Sidekiq
mastodon:media:remove_silenced
mastodon:media:remove_remote
mastodon:media:redownload_avatars
mastodon:feeds:build
* Fix code style issue
7 years ago
Eugen Rochko
3623aea6c9
Redirect / to home on mobile layout, to getting started on desktop ( #7677 )
7 years ago
Eugen Rochko
1a7a74ff76
Improve getting started column ( #7676 )
...
* Adjust footer of getting started column
- Improved style
- Moved hotkeys, about this instance and logout to footer
- Removed FAQ, User Guide, Apps links
- Use hamburger icon for the column
* Add edit profile action button to profile and more to dropdown
* Add "Trending now" to getting started column
* Add preferences/security links on mobile layout
7 years ago
Eugen Rochko
a7d726c383
Improve counter caches on Status and Account ( #7644 )
...
Do not touch statuses_count on accounts table when mass-destroying
statuses to reduce load when removing accounts, same for
reblogs_count and favourites_count
Do not count statuses with direct visibility in statuses_count
Fix #828
7 years ago
Eugen Rochko
461542784b
Reduce wasted work in RemoveStatusService due to inactive followers ( #7672 )
7 years ago
Thibaut Girka
e7b3a4263e
[Glitch] Fix low-contrasted cancel button of reply indicator
...
Port 86efccce2a
to glitch-soc
7 years ago
Thibaut Girka
08dbe29e29
[Glitch] Improve load gap styling in web UI
...
Port 45c9f16f71
to glitch-soc
7 years ago
Thibaut Girka
cc589d6ec0
[Glitch] Use randomized setTimeout when fallback-polling and re-add since_id
...
Port dafd7afc5e
to glitch-soc
7 years ago
Thibaut Girka
fbc25bdd2d
[Glitch] Do not crash in getStatusIds when there is a gap in the timeline
...
Port b1938d7853
to glitch-soc
7 years ago
Thibaut Girka
5cc4d34250
[Glitch] Fix gap insertion for timeline disconnection
...
Port 66359ec522
to glitch-soc
7 years ago
Thibaut Girka
15bef77add
[Glitch] Fix ID duplication in timelines
...
Port 306267dbd2
to glitch-soc
7 years ago
Thibaut Girka
4b38ac3bed
[Glitch] Fix comparing id
...
Port 0ba49eca8b
to glitch-soc
7 years ago
Thibaut Girka
6020a21130
[Glitch] Fix LoadMore on account media gallery
...
Port 3523aa440b
to glitch-soc
7 years ago
Thibaut Girka
5d16fd3f28
[Glitch] Add missing null handling in notification reducer
...
Port 2f3ac14a43
to glitch-soc
7 years ago
Thibaut Girka
4eba8c50c3
[Glitch] Allow clients to fetch notifications made while they were offline
...
Port cbf97c03bb
to glitch-soc
7 years ago
Thibaut Girka
0ad3eedd4c
[Glitch] Allow clients to fetch statuses made while they were offline
...
Port 9a1a55ce52
to glitch-soc
7 years ago
unarist
7706ed038f
Fix context building in the reducer ( #7671 )
...
This fixes below bugs:
* addReply() had used native compare operator for string ids
=> descendants may appears at wrong position
* CONTEXT_FETCH_SUCCESS had added the focused status as the reply of the *first* status in ancestors, not last status.
=> descendants may also appears wrong position as well as correct position
* TIMELINE_UPDATE had added the status to replies of *itself* instead of replied status
=> browser will hangs if you open the status due to a circular reference
7 years ago
Thibaut Girka
532fb8e215
Fix error when unmuting a domain without listing muted domains first
7 years ago
ThibG
0345cd5a0f
Fix error when unmuting a domain without listing muted domains first ( #7670 )
7 years ago
abcang
90908fc24b
Fix N+1 on AtomSerializer ( #7669 )
7 years ago
Eugen Rochko
8bb74e50be
Add GET /api/v2/search which returns rich tag objects, adjust web UI ( #7661 )
7 years ago
Eugen Rochko
90b64c0069
Always display tab navigation on local/federated timeline even when empty ( #7663 )
...
Fix #7659
7 years ago
Eugen Rochko
e599d7caf2
Rescue Mastodon::DimensionsValidationError in Remoteable ( #7662 )
...
Fix #7660
7 years ago
Akihiko Odaki
d95642f6d9
Cache attachments on external host with service worker ( #7493 )
7 years ago
takayamaki
03f4c214b4
fix: Don't validate MX record in development ( #7654 )
7 years ago
Lynx Kotoura
c0355878ba
Fix embed, error and onboarding modals in light theme ( #7656 )
7 years ago
Eugen Rochko
04a2cf8bcc
Fix incomplete flex style on trends items ( #7655 )
7 years ago
tateisu
b87a1229c7
optimize direct timeline ( #7614 )
...
* optimize direct timeline
* fix typo in class name
* change filter condition for direct timeline
* fix codestyle issue
* revoke index_accounts_not_silenced because direct timeline does not use it.
* revoke index_accounts_not_silenced because direct timeline does not use it.
* fix rspec test condition.
* fix rspec test condition.
* fix rspec test condition.
* revoke adding column and partial index
* (direct timeline) move merging logic to model
* fix pagination parameter
* add method arguments that switches return array of status or cache_ids
* fix order by
* returns ActiveRecord.Relation in default behavor
* fix codestyle issue
7 years ago
Eugen Rochko
ab36e0ef72
Record trending tags from ActivityPub, too ( #7647 )
7 years ago
Eugen Rochko
dfbadd6837
Replace recursion in status mapStateToProps ( #7645 )
7 years ago
Eugen Rochko
9bd23dc4e5
Track trending tags ( #7638 )
...
* Track trending tags
- Half-life of 1 day
- Historical usage in daily buckets (last 7 days stored)
- GET /api/v1/trends
Fix #271
* Add trends to web UI
* Don't render compose form on search route, adjust search results header
* Disqualify tag from trends if it's in disallowed hashtags setting
* Count distinct accounts using tag, ignore silenced accounts
7 years ago
Thibaut Girka
8b98afa781
[Glitch] Replace onScrollToBottom with onLoadMore
...
Port b0664a5e6c
to glitch-soc
7 years ago
Thibaut Girka
a81ed7b205
Do not needlessly refresh pinned toots
...
Port missing part of 6ae70a92c9
to glitch-soc
7 years ago
Thibaut Girka
60addb14ce
[Glitch] Change icon for domain blocks
...
Port fa04945365
to glitch-soc
7 years ago