Compare commits

...

143 Commits

Author SHA1 Message Date
77be1ae7be update wiki links to remove /wiki/
All checks were successful
continuous-integration/drone/push Build is passing
2024-08-06 18:19:38 -04:00
23c418da81 composer no longer needed
All checks were successful
continuous-integration/drone/push Build is passing
2024-08-05 12:28:09 -04:00
fb9098909a move wiki to mediawiki
Some checks failed
continuous-integration/drone/push Build is failing
2024-08-05 12:27:14 -04:00
el
03eb930abe Mention transmuteall for us lazies
All checks were successful
continuous-integration/drone/push Build is passing
2024-04-09 23:19:49 +00:00
el
aa89d565bd this is what happens when you test without prettyurls
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
continuous-integration/drone/push Build is passing
2024-03-13 15:00:18 -07:00
el
362f2b6e1f fix link and wording re: chan directory
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
continuous-integration/drone/push Build is passing
2024-03-13 14:40:35 -07:00
amr
d01a8613ca Update wiki/pages/hamradio.md
All checks were successful
continuous-integration/drone/push Build is passing
Added myself to the list of radio operators :)
2024-03-13 16:16:45 +00:00
e64de99fe2 composer update
All checks were successful
continuous-integration/drone/push Build is passing
2024-03-13 12:12:26 -04:00
el
49b3423796 reorganize & expand index page
Some checks failed
continuous-integration/drone Build is failing
2024-03-13 08:45:16 -07:00
el
1500110b6d add irc intro wiki page 2024-03-13 08:44:22 -07:00
34c101db24 change to -tls option for weechat 4.x
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-04 19:19:53 +00:00
c98e305ba1 small fixes
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
continuous-integration/drone/push Build is passing
2023-05-24 20:37:59 +00:00
305d90bccf add hostserv page (#64)
All checks were successful
continuous-integration/drone/push Build is passing
add hostserv page
fix small format error with channel names in title (since # is a comment char for the yaml section)

Reviewed-on: tildeverse/tilde.chat#64
Co-authored-by: Alexander <alexlehm@cosmic.voyage>
Co-committed-by: Alexander <alexlehm@cosmic.voyage>
2023-05-23 21:18:27 +00:00
420fd558c6 fix XSS in webchatlink variable (#63)
All checks were successful
continuous-integration/drone/push Build is passing
webchatlink variable comes from the json file and was echoed unencoded

Reviewed-on: tildeverse/tilde.chat#63
Co-authored-by: Alexander <alexlehm@cosmic.voyage>
Co-committed-by: Alexander <alexlehm@cosmic.voyage>
2023-05-16 18:03:45 +00:00
el
a6d3705f42 fix the bit where i missed half the thing
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
continuous-integration/drone/push Build is passing
2023-05-14 19:25:18 +00:00
el
c5ded22ffc sanitize outputs
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
continuous-integration/drone/push Build is passing
2023-05-14 04:43:10 +00:00
bb9376f1f9 added missing new line
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
continuous-integration/drone/push Build is passing
2023-04-22 09:56:45 -04:00
49a0b02e85 Added to shared strike policy 2023-04-22 09:51:41 -04:00
el
44b2200981 Remove servers no longer in /map
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
continuous-integration/drone/push Build is passing
2023-04-18 05:30:33 +00:00
6e481daf06 minor text corrections based on my previous contribution (#57)
All checks were successful
continuous-integration/drone/push Build is passing
there was 1 link wrong (nicks), a few typos and I made some text clearer I hope

also I added a note how to preview from a tilde server when running locally

Reviewed-on: tildeverse/tilde.chat#57
Co-authored-by: Alexander <alexlehm@cosmic.voyage>
Co-committed-by: Alexander <alexlehm@cosmic.voyage>
2023-02-11 15:34:38 +00:00
bbfaf5b97a Merge pull request 'validate page parameter to be a local filename' (#58) from alexlehm/tilde.chat:validate-page-param into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#58
2023-01-27 05:13:19 +00:00
c2ec0439df validate page parameter to be a local filename
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2023-01-26 18:39:24 +00:00
e5eb43ecc6 quickstart guide for weechat (#56)
All checks were successful
continuous-integration/drone/push Build is passing
A quick start guide to use weechat

Since I never had used weechat before, I got kind of stuck on the server connect, so I decided to write a guide

Reviewed-on: tildeverse/tilde.chat#56
Co-authored-by: Alexander <alexlehm@cosmic.voyage>
Co-committed-by: Alexander <alexlehm@cosmic.voyage>
2023-01-25 23:09:11 +00:00
073b3e74ad fix indentation in wiki/index.php
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-12 12:47:00 -04:00
4d4d893417 fix link path
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-12 12:41:34 -04:00
6b71569369 oops wrong variable
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-12 12:40:41 -04:00
6bda5a078f sort wikipages by title and display as a table
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-12 12:39:36 -04:00
ee1886e6b8 s/hub/newhub/
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-11 22:16:45 -04:00
8f08f62ab5 remove link to mumble webclient
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-11 13:06:28 -04:00
8b5f6b1956 Merge pull request 'Add link to gamja in body text' (#54) from sebboh/tilde.chat:sebboh-patch-1 into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#54
2022-07-08 16:29:07 +00:00
f8eebcabd7 Add link to gamja in body text
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2022-07-08 15:07:12 +00:00
a59e22e8ed Merge pull request 'addendum to obnoxious behaviour; don't share it' (#53) from meldra/tilde.chat:master into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#53
2022-07-06 18:40:18 +00:00
5ef8f03c0f addendum to obnoxious behaviour; don't share it
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2022-07-06 18:36:43 +00:00
www-data
311f6a902e catch utf8 error
All checks were successful
continuous-integration/drone/push Build is passing
2022-06-12 20:04:37 -04:00
24284be199 bump tildeteam/wiki
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-16 13:43:45 -05:00
104de86f2c print title outside of the markdown
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-16 12:57:58 -05:00
971ad500f4 update tildeteam/wiki to 2.0
All checks were successful
continuous-integration/drone/push Build is passing
2022-02-14 22:08:03 -05:00
d28b51fa6a
fix some typos and warnings
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-16 15:11:20 -05:00
9afc78c636 Merge pull request 'added #covid19 to etiquette SSP section' (#52) from moppers/tilde.chat:master into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#52
2022-01-04 22:45:20 +00:00
anelki
7322fb9077 added #covid19 to etiquette SSP section
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2022-01-04 17:29:41 -05:00
db48958686 Merge pull request 'typo in preface of self-accountability page' (#51) from anelki/tilde.chat:master into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#51
2021-11-28 15:50:55 +00:00
2bc011cb05 typo in preface
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2021-11-27 04:42:39 +00:00
256b6b06fc Merge pull request 'Add #aussie to shared strike policy' (#50) from fosslinux/tilde.chat:ssp into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#50
2021-10-15 18:19:42 +00:00
cce845046a Add #aussie to shared strike policy
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2021-10-15 15:00:28 +11:00
8cc1fab857 Merge pull request 'quotation mark nitpicking' (#49) from anelki/tilde.chat:pronouns-helpdesk into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#49
2021-10-07 16:08:50 +00:00
3a44125e6f Merge branch 'master' into pronouns-helpdesk
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2021-10-07 15:53:24 +00:00
anelki
9288a381a5 oh for the love of christ nitpicking (quotation marks)
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2021-10-07 11:51:57 -04:00
892590d926 Merge pull request 'added /whois to pronoun section, #helpdesk to list of shared strike channels, and alphabetized shared strike channel order' (#48) from anelki/tilde.chat:pronouns-helpdesk into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#48
2021-10-07 15:48:17 +00:00
anelki
7792c0de27 added /whois to pronoun section, #helpdesk to list of shared strike channels, and alphabetized shared strike channel order
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2021-10-07 11:42:46 -04:00
af8f5c94d8 add #institute to ssp participating channels list
All checks were successful
continuous-integration/drone/push Build is passing
2021-10-07 10:43:10 -04:00
207896a090 Merge pull request 'added #club and #tilderadio to SSP' (#46) from deepend-patch-1 into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#46
2021-10-07 04:05:56 +00:00
93c0fdb79b added #club and #tilderadio to SSP
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2021-10-07 03:50:53 +00:00
2fe8c5879c Merge pull request 'Added Shared Strike Policy' (#45) from demure/tilde.chat:master into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#45
2021-10-07 02:55:59 +00:00
5813133b87 Added Shared Strike Policy
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2021-10-07 02:52:55 +00:00
d0f9c197e3 Remove page about #sevens
All checks were successful
continuous-integration/drone/push Build is passing
I never got around to doing anything with it, and I have too many channels open as is.
2021-10-06 18:38:37 +00:00
157404fb0c normalize webchat links
All checks were successful
continuous-integration/drone/push Build is passing
2021-09-17 14:07:44 -04:00
316fa0c321 update description for inst
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-14 13:37:40 -04:00
a9791566b3 add texto-plano
All checks were successful
continuous-integration/drone/push Build is passing
2021-06-08 12:22:45 -04:00
af5dd1587e update webirc links and add mumble
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-27 15:34:30 -04:00
8236ba311c Update 'wiki/pages/botamusique.md'
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-21 04:08:56 +00:00
ddb208a126 Update 'wiki/pages/botamusique.md'
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-21 03:39:05 +00:00
49fd5f8d37 change freenode to libera
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-19 15:47:08 -04:00
ca6c53f6e6
re-add bsd.tilde.chat
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-08 21:26:13 -04:00
fc0fd3f92a add accountability link
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-08 12:06:16 -04:00
b4987a0216 use -C instead of cd
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-02 11:16:03 -04:00
2164ad8c1f add user_accountability.md
All checks were successful
continuous-integration/drone/push Build is passing
committing on behalf of: @demure
2021-03-30 17:27:07 -04:00
0cf52cf4b0 update tildeteam/wiki to 1.0
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-20 13:14:16 -04:00
33c32438cb
update tildewiki
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-17 00:38:09 -04:00
8aa77b08fa fix geo-list sorting
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-05 13:43:34 -05:00
dfd88b63e6 clean up servers.md wiki page
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-05 13:41:09 -05:00
3df99f5d1b tidy up connection info
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-05 13:30:21 -05:00
e4c3e8c0dd add biboumi connection info
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-05 13:23:32 -05:00
8c790ac4d2 offset #fragment urls
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-05 11:39:59 -05:00
faad0241b8 tidy up grammar on etiquette.md
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-01 15:10:17 -05:00
b0fc57e667 Merge pull request 'address pronouns!' (#43) from BrendanTCC/tilde.chat:master into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#43
2021-03-01 20:06:45 +00:00
6e36ea292e Update 'wiki/pages/etiquette.md'
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2021-03-01 03:45:34 +00:00
d2fad4c537 Merge pull request 'added nv0n' (#41) from jjs/tilde.chat:nv0n into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#41
2021-02-28 18:03:47 +00:00
Joey STANFORD
34b2481f00 added nv0n
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2021-02-26 17:19:27 -07:00
0993be564e add wiki link
All checks were successful
continuous-integration/drone/push Build is passing
2020-11-18 10:49:11 -05:00
53a8600718 add note about registering in #meta
All checks were successful
continuous-integration/drone/push Build is passing
2020-11-18 10:48:04 -05:00
435cf05a90 print channel name unquoted
All checks were successful
continuous-integration/drone/push Build is passing
2020-11-17 19:58:11 -05:00
9a09ce25fd update webchat links
All checks were successful
continuous-integration/drone/push Build is passing
2020-11-17 19:55:55 -05:00
e7614ec23c fix title for bungame.md
All checks were successful
continuous-integration/drone/push Build is passing
2020-11-16 18:17:52 -05:00
d278528ca4 Merge pull request 'Add bungame page' (#39) from bungame-doc into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#39
2020-11-16 23:12:42 +00:00
37fcfff61d Add bungame page
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-11-16 22:15:57 +00:00
09394d5ed0 update servers wikipage
All checks were successful
continuous-integration/drone/push Build is passing
2020-11-16 12:44:37 -05:00
6786dcf281 update composer deps
All checks were successful
continuous-integration/drone/push Build is passing
2020-10-27 14:48:56 -04:00
700a5955e7 fix null modes error
All checks were successful
continuous-integration/drone/push Build is passing
2020-10-23 17:38:27 -04:00
5ca47ce551 fix typo 2020-10-20 09:54:02 -04:00
2830cd000d tidy up script
All checks were successful
continuous-integration/drone/push Build is passing
2020-09-22 14:01:58 -04:00
034e963ade re-add default text for missing topic
All checks were successful
continuous-integration/drone/push Build is passing
2020-09-22 13:37:20 -04:00
93ac6340de switch to lxml in order to detect CDATA tags
All checks were successful
continuous-integration/drone/push Build is passing
2020-09-22 13:20:58 -04:00
www-data
9a25baf3b3 fix width of figlet
All checks were successful
continuous-integration/drone/push Build is passing
2020-09-09 12:36:34 -04:00
www-data
a0192f87b5 add motd generator
Some checks failed
continuous-integration/drone/push Build is failing
2020-09-09 12:34:25 -04:00
1dbab9f04b Merge pull request 'wiki/pages/bots.md: merge radiobot entry into tildebot entry' (#38) from kiedtl/tilde.chat:radiobot-rm into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: tildeverse/tilde.chat#38
2020-07-20 13:33:09 -04:00
f5db459aae bots.md: merge radiobot entry into tildebot entry
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-07-20 13:30:06 -04:00
48abab494d Merge pull request 'Change BitBot entry to mention tildebot' (#37) from kiedtl/tilde.chat:bitbot-tildebot into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: tildeverse/tilde.chat#37
2020-07-19 18:55:07 -04:00
c09bb8c2f9 bots.md: fix conflicts
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-07-19 17:18:01 -04:00
1d52a2bb95 Change BitBot entry to mention tildebot 2020-07-19 17:16:53 -04:00
fcb2a5c39c Change BitBot entry to mention tildebot
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-07-18 13:02:43 -04:00
43e82d8627 Merge pull request 'Mention the ,duckstats BitBot command in BitBot's wiki entry' (#36) from kiedtl/tilde.chat:bitbot-duccstats-mention into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#36
2020-06-23 20:52:21 -04:00
045ff2965d Merge branch 'master' into bitbot-duccstats-mention
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-06-23 20:52:16 -04:00
1e2f0f03d6 Mention the ,duckstats BitBot command in BitBot's wiki entry
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-06-23 20:45:17 -04:00
405a8005e0 Instead of doing fancy lstrip or brutalist slicing, just urlencode the entire channel name
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-23 15:28:00 -04:00
4874785b6e We shouldn't remove more than one # at the start of a message
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-23 15:21:37 -04:00
38d9604251 Merge pull request 'Add kiedtl's k bot to the list of bots' (#35) from kiedtl/tilde.chat:master into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: tildeverse/tilde.chat#35
2020-06-22 20:34:10 -04:00
2f34b4507e Merge branch 'master' into master
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-06-22 17:14:38 -04:00
6c84002d88 Update 'wiki/pages/bots.md'
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-06-22 17:13:52 -04:00
fa574a06b7 Add page on botamusique
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-20 21:17:20 -04:00
61c0123257 Add k bot to the list of bots
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-06-09 18:50:19 -04:00
419be764ef add link to mumble webclient
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-04 01:03:08 -04:00
b74b0889fd sasl info moved to nicks page
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-03 01:31:08 -04:00
7a9d7cdb71 add docs on channel management. closes #23
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-03 01:27:48 -04:00
1bc24fb21d mention webchat clients in connection info
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-22 12:12:39 -04:00
695eac07f3 update webchat links
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-22 12:09:46 -04:00
f004fa9a06 update mumble hostname
All checks were successful
continuous-integration/drone/push Build is passing
there's now a SRV record so now we don't need the subdomain
2020-05-21 00:17:35 -04:00
c0baea921c Merge pull request 'Add badger commands to its wiki page' (#33) from update-badger-page into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-20 16:02:07 -04:00
8396dd7c95 Add badger commands to its wiki page
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-05-20 13:42:28 -04:00
fccc6e3487 add note about +B
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-15 16:30:52 -04:00
20713a8f4e Merge pull request 'Change "channel" to "behavior" in irc wiki' (#32) from muggahtee/tilde.chat:master into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-14 10:30:02 -04:00
47c8d8ed80 Change "channel" to "behavior" in irc wiki
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-05-14 04:14:15 -04:00
c22b4340b4 update ssh clone url
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-09 17:00:14 -04:00
06cba59c9a move members to channel stats page
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-07 21:03:01 -04:00
www-data
07c5a44543 fix link on rules.txt
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-30 15:01:35 -04:00
52e2f6c293 add link to anope wiki
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-28 21:23:08 -04:00
4a990a3c2b fix codeblock formatting
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-28 21:21:07 -04:00
02428ba5fd Merge pull request 'Adding page about nick reg' (#30) from ubergeek/tilde.chat:master into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-28 21:17:52 -04:00
Ubergeek
d33abde339 Adding section about nickerv help
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-04-28 09:43:30 -04:00
Ubergeek
943910690b Dang it, forgot to add
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-04-28 09:31:48 -04:00
Ubergeek
1b1f8b666c fixed formatting and name and such
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-04-28 09:18:03 -04:00
ubergeek
43b5217294 added new wiki page about registering nicks 2020-04-28 09:14:52 -04:00
f29b6e4710 Merge pull request 'Added the pink_dragon bot running on #legend' (#28) from baruchel/tilde.chat:mybot into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-27 13:25:03 -04:00
f9ed8f12b4 Added Pink Dragon
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-04-27 10:42:36 -04:00
c6d860a839 Added Pink Dragon 2020-04-27 10:40:24 -04:00
adec9d32b8 add cosmic
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-26 15:11:58 -04:00
4af4c8af40 Fix code of conduct link so it actually goes to the code of conduct and doesn't freak out
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-07 22:13:25 -04:00
3b2a29e3c2 Merge pull request 'Document the badger bot' (#27) from badger-doc into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-17 12:29:27 -04:00
7e019a0c49 Add badger to bot list
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-03-14 18:59:07 -04:00
9a9740d731 Add category
Some checks reported errors
continuous-integration/drone/pr Build encountered an error
2020-02-23 11:43:26 -05:00
502e6f2efe Add badger docs 2020-02-23 11:42:34 -05:00
eaad9cb573 Merge branch 'master' of LickTheCheese/tilde.chat into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-02-04 09:26:54 -05:00
LickTheCheese
ab86b9ddf8 add my bot to list 2020-02-03 13:37:26 -05:00
d8fc2e27de Merge branch 'master' of creme/tilde.chat into master 2020-01-15 09:37:24 -05:00
22 changed files with 196 additions and 825 deletions

View File

@ -22,5 +22,6 @@ steps:
- name: deploy
commands:
- cd /var/www/tilde.chat
- sudo -Hu www-data git pull origin master
- sudo -Hu www-data git fetch
- sudo -Hu www-data git reset --hard origin/master

View File

@ -6,8 +6,6 @@ this is the source for [tilde.chat](https://tilde.chat).
if you have any fixes/updates that you need to make, feel free to open a PR.
[wiki](https://tilde.chat/wiki/) updates are [part of this repo](wiki/) as well.
stop by irc and say hi!
---
@ -15,20 +13,9 @@ stop by irc and say hi!
## deployment
1. clone the repo into your webroot
2. `composer install`
2. make sure inspircd has m_httpd.so m_httpd_stats.so loaded
2. make sure inspircd has `m_httpd.so` `m_httpd_stats.so` loaded
3. add a local bind for stats on 8081:
`<bind address="127.0.0.1" port="8081" type="httpd">`
4. add gen_stats to a crontab for a user that can write in the webroot:
4. add `gen_stats` to a crontab for a user that can write in the webroot:
`* * * * * /var/www/tilde.chat/gen_stats`
5. nginx config for pretty urls
```
location ~* ^/wiki/(.+)$ {
try_files $uri $uri/ /wiki/index.php?page=$1;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}
```

View File

@ -1,11 +1,10 @@
<?php
include 'shieldsio.php';
if (!isset($_GET["channel"])) {
$badge = get_badge();
header("Location: {$badge}");
} else {
$badge = get_badge($_GET["channel"]);
header("Location: {$badge}");
}
die();
?>
include 'shieldsio.php';
if (!isset($_GET["channel"])) {
$badge = get_badge();
} else {
$badge = get_badge($_GET["channel"]);
}
header("Location: $badge");
die();

View File

@ -12,13 +12,13 @@
</tr>
</thead>
<tr>
<td>Network user count</td><td>https://tilde.chat/badges/badge.php</td><td><img src="badge.php"></td>
<td>Network user count</td><td>https://tilde.chat/badges/badge.php</td><td><img src="badge.php" alt="user count badge"></td>
</tr>
<tr>
<td>User count for #meta</td><td>https://tilde.chat/badges/badge.php?channel=%23meta</td><td><img src="badge.php?channel=%23meta"></td>
<td>User count for #meta</td><td>https://tilde.chat/badges/badge.php?channel=%23meta</td><td><img src="badge.php?channel=%23meta" alt="#meta badge"></td>
</tr>
<tr>
<td>Invalid channel name (error handling)</td><td>https://tilde.chat/badges/badge.php?channel=invalid</td><td><img src="badge.php?channel=invalid"></td>
<td>Invalid channel name (error handling)</td><td>https://tilde.chat/badges/badge.php?channel=invalid</td><td><img src="badge.php?channel=invalid" alt="invalid badge"></td>
</tr>
</table>
<?php include '../footer.php'; ?>

View File

@ -1,16 +1,17 @@
<?php
function get_badge($channel_name=FALSE) {
function get_badge($channel_name=FALSE): string
{
if ($channel_name==FALSE) {
return "https://img.shields.io/badge/dynamic/json.svg?url=https://tilde.chat/stats.json&label=~chat&query=$.usercount&suffix=%20online&link=https:%2F%2Ftilde.chat&link=https:%2F%2Fweb.tilde.chat&colorB=%2300cc00";
return "https://img.shields.io/badge/dynamic/json.svg?url=https://tilde.chat/stats.json&label=~chat&query=$.usercount&suffix=%20online&link=https:%2F%2Ftilde.chat&link=https:%2F%2Ftilde.chat%2Fkiwi%2F&colorB=%2300cc00";
}
$name_url = urlencode($channel_name);
$name_link = urlencode(substr($channel_name,1));
$stats = json_decode(file_get_contents("https://tilde.chat/stats.json")) ?? array("channels"=>[]);
foreach ($stats->channels as $key=>$channel) {
if ($channel->name==$channel_name) {
return "https://img.shields.io/badge/dynamic/json.svg?url=https://tilde.chat/stats.json&label=~chat&query=$.channels[$key].usercount&suffix=%20online%20on%20{$name_url}&link=https:%2F%2Ftilde.chat&link=https:%2F%2Fweb.tilde.chat%2F%3Fjoin%3D{$name_link}&colorB=%2300cc00";
return "https://img.shields.io/badge/dynamic/json.svg?url=https://tilde.chat/stats.json&label=~chat&query=$.channels[$key].usercount&suffix=%20online%20on%20$name_url&link=https:%2F%2Ftilde.chat&link=https:%2F%2Ftilde.chat%2Fkiwi%2F$name_link&colorB=%2300cc00";
}
}
return "https://img.shields.io/badge/~chat-invalid%20channel-red.svg";
}
?>

View File

@ -1,11 +0,0 @@
{
"require": {
"tildeverse/wiki": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "https://tildegit.org/ben/tildewiki"
}
]
}

292
composer.lock generated
View File

@ -1,292 +0,0 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "3ab3df15c4e40417f427b37691e83088",
"packages": [
{
"name": "erusev/parsedown",
"version": "1.7.3",
"source": {
"type": "git",
"url": "https://github.com/erusev/parsedown.git",
"reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/erusev/parsedown/zipball/6d893938171a817f4e9bc9e86f2da1e370b7bcd7",
"reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35"
},
"type": "library",
"autoload": {
"psr-0": {
"Parsedown": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Emanuil Rusev",
"email": "hello@erusev.com",
"homepage": "http://erusev.com"
}
],
"description": "Parser for Markdown.",
"homepage": "http://parsedown.org",
"keywords": [
"markdown",
"parser"
],
"time": "2019-03-17T18:48:37+00:00"
},
{
"name": "erusev/parsedown-extra",
"version": "0.7.1",
"source": {
"type": "git",
"url": "https://github.com/erusev/parsedown-extra.git",
"reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/erusev/parsedown-extra/zipball/0db5cce7354e4b76f155d092ab5eb3981c21258c",
"reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c",
"shasum": ""
},
"require": {
"erusev/parsedown": "~1.4"
},
"type": "library",
"autoload": {
"psr-0": {
"ParsedownExtra": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Emanuil Rusev",
"email": "hello@erusev.com",
"homepage": "http://erusev.com"
}
],
"description": "An extension of Parsedown that adds support for Markdown Extra.",
"homepage": "https://github.com/erusev/parsedown-extra",
"keywords": [
"markdown",
"markdown extra",
"parsedown",
"parser"
],
"time": "2015-11-01T10:19:22+00:00"
},
{
"name": "mnapoli/front-yaml",
"version": "1.6.0",
"source": {
"type": "git",
"url": "https://github.com/mnapoli/FrontYAML.git",
"reference": "24070ace8b741247bb3161cbb38ecc541268b296"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/mnapoli/FrontYAML/zipball/24070ace8b741247bb3161cbb38ecc541268b296",
"reference": "24070ace8b741247bb3161cbb38ecc541268b296",
"shasum": ""
},
"require": {
"erusev/parsedown": "~1.0",
"php": ">=5.4.0",
"symfony/yaml": "~2.1|^3.0|^4.0"
},
"require-dev": {
"league/commonmark": "~0.7",
"phpunit/phpunit": "~4.5"
},
"type": "library",
"autoload": {
"psr-4": {
"Mni\\FrontYAML\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"time": "2017-10-29T19:29:55+00:00"
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "82ebae02209c21113908c229e9883c419720738a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a",
"reference": "82ebae02209c21113908c229e9883c419720738a",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"suggest": {
"ext-ctype": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.11-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Ctype\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
},
{
"name": "Gert de Pagter",
"email": "BackEndTea@gmail.com"
}
],
"description": "Symfony polyfill for ctype functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"ctype",
"polyfill",
"portable"
],
"time": "2019-02-06T07:57:58+00:00"
},
{
"name": "symfony/yaml",
"version": "v4.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/c60ecf5ba842324433b46f58dc7afc4487dbab99",
"reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99",
"shasum": ""
},
"require": {
"php": "^7.1.3",
"symfony/polyfill-ctype": "~1.8"
},
"conflict": {
"symfony/console": "<3.4"
},
"require-dev": {
"symfony/console": "~3.4|~4.0"
},
"suggest": {
"symfony/console": "For validating YAML files using the lint command"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.3-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Yaml\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2019-04-06T14:04:46+00:00"
},
{
"name": "tildeverse/wiki",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://tildegit.org/ben/tildewiki",
"reference": "751eb64c383cb7c6ec643eaf683b88aa1de351ea"
},
"require": {
"erusev/parsedown-extra": "^0.7.1",
"mnapoli/front-yaml": "^1.6"
},
"type": "library",
"autoload": {
"psr-4": {
"Tildeverse\\Wiki\\": "src/"
}
},
"license": [
"GPLv3"
],
"authors": [
{
"name": "Ben Harris",
"email": "ben@tilde.team"
}
],
"description": "parsedown extensions for tilde wikis",
"time": "2019-07-03T05:06:34+00:00"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
"tildeverse/wiki": 20
},
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform-dev": []
}

View File

@ -1,54 +1,65 @@
#!/usr/bin/env python3
import requests, json
import xml.etree.ElementTree as xml
import base64
import json
from lxml import etree
WORK_DIR = "/var/www/tilde.chat"
r = requests.get("http://localhost:8081/stats")
r.raise_for_status()
out = {}
d = xml.fromstring(r.text)
assert d.tag == "inspircdstats"
parser = etree.XMLParser(strip_cdata=False)
root = etree.parse("http://localhost:8081/stats", parser)
assert root.getroot().tag == "inspircdstats"
with open(f"{WORK_DIR}/blacklist", "r") as f:
BLACKLIST = f.read().splitlines()
def define(name, xps, vfilter=lambda x: x):
global out
out[name] = vfilter(d.findall(xps)[0].text)
def unsanitize(node, default=""):
# workaround for weird behavior in insp's xml output
# https://github.com/inspircd/inspircd/blob/v3.7.0/src/modules/m_httpd_stats.cpp#L55
if node.text is None or node.text == "":
return default
elif str(etree.tostring(node)).startswith(f"b'<{node.tag}><![CDATA["):
missing_padding = len(node.text) % 4
if missing_padding:
v = node.text + "=" * (4 - missing_padding)
else:
v = node.text
try:
return base64.b64decode(v).decode("utf-8")
except:
return "failed to read topic as utf-8"
return node.text
define("usercount", "./general/usercount", int)
define("channelcount", "./general/channelcount", int)
schannels = d.findall("./channellist/channel")
out["usercount"] = int(root.find("./general/usercount").text)
out["channelcount"] = int(root.find("./general/channelcount").text)
channels = []
for schannel in schannels:
channel = dict(
name=schannel.findall("channelname")[0].text,
usercount=int(schannel.findall("usercount")[0].text),
)
channel["topic"] = (
schannel.findall("./channeltopic/topictext")[0].text
if schannel.findall("./channeltopic/topictext")[0].text is not None
else "No topic set"
)
out["channels"] = []
for c in root.findall("./channellist/channel"):
name = unsanitize(c.find("channelname"))
modes = c.find("./channelmodes").text
if (
# skip channels in the blacklist or with mode +s
"s" in schannel.findall("./channelmodes")[0].text.split()[0]
or channel["name"] in BLACKLIST
name in BLACKLIST
or modes is None
or "s" in modes.split()[0]
):
continue
channel["webchatlink"] = "https://web.tilde.chat/?join=" + channel["name"].lstrip(
"#"
out["channels"].append(
dict(
name=name,
topic=unsanitize(c.find("./channeltopic/topictext"), "no topic set"),
usercount=int(c.find("usercount").text),
webchatlink="https://tilde.chat/kiwi/" + name,
)
)
channels.append(channel)
channels.sort(key=lambda x: x["name"].lower())
out["channels"] = channels
out["channels"].sort(key=lambda x: x["name"].lower())
# print([x.text for x in d.findall("./channellist/channel/channeltopic/topictext")])
with open(f"{WORK_DIR}/stats.json", "w") as f:
json.dump(out, f)

View File

@ -14,7 +14,15 @@
<meta property="og:image" content="https://tilde.chat/apple-icon.png">
<meta property="og:site_name" content="tilde.chat">
<meta property="og:type" content="website">
<style>
/* offset #fragments */
:target:before {
content: "";
display: block;
height: 70px;
margin: -70px 0 0;
}
</style>
</head>
<body style="padding-top: 70px;">
<div class="container">

107
index.php
View File

@ -1,80 +1,51 @@
<?php include 'header.php'; ?>
<h1>tilde.chat <img src="/badges/badge.php"></h1>
<hr>
<h1>tilde.chat <img src="/badges/badge.php" alt="tilde user badge"></h1>
<hr>
<p>hey hi</p>
<p>tilde.chat is the irc network of the <a href="https://tildeverse.org">tildeverse</a>, an association of social unix servers built as an intentional community for teaching, learning, and sharing.</p>
<p>tilde.chat is meant to be a space for all tilde members to hang out, share, teach, and learn.</p>
<p><a rel="me" href="https://tilde.zone/@tildeverse">!toot goes here: mastodon</a></p>
<p>hey hi</p>
<p>tilde.chat is the irc network of the <a href="https://tildeverse.org">tildeverse</a>, an association of social unix servers built as an intentional community for teaching, learning, and sharing.</p>
<p>tilde.chat is a place for tilde-folk and friends to gather and communicate.</p>
<!--
<p>feel free to contact a tilde.team admin (<?php
$members = json_decode(file_get_contents("https://tildeverse.org/members.json"))->members;
foreach ($members as $member)
if ($member->name == "tilde.team")
$team = $member;
$count = count($team->sysadmins);
foreach($team->sysadmins as $sysadmin) {
echo "<a href='{$sysadmin[1]}'>{$sysadmin[0]}</a>";
if ($count>1) {
echo ", ";
$count--;
}
}?>) for more info as we flesh out this site</p>
-->
<h3>connection info</h3>
<p>you can connect to <em>irc.</em>tilde.chat on port 6697 with ssl</p>
<p>irc.tilde.chat is a round-robin host that will return any of the <a href="wiki/?page=servers">available servers</a></p>
<h3>connection info</h3>
<p>point your client to <a href="ircs://irc.tilde.chat:6697"><em>irc.</em>tilde.chat</a> on port 6697 with ssl/tls</p>
<p>
if you're getting a higher ping than you'd like, try one of the geo-round-robins:
<em>na</em>.tilde.chat, <em>eu</em>.tilde.chat, and <em>au</em>.tilde.chat on port 6697 with ssl.
<em>na</em>.tilde.chat, <em>eu</em>.tilde.chat, and <em>au</em>.tilde.chat on port 6697 with ssl/tls.
</p>
<p>plaintext <a href="irc://localhost:6667">on localhost port 6667</a> is available at a shell on <a href="https://tilde.wiki/Tilde.chat/Servers">tildes that run chat nodes</a> (port 7766 on ~town)</p>
<p>if you don't have a client ready to go, try using our <a href="https://tilde.chat/kiwi/">kiwiirc webchat</a> or our <a href="https://tilde.chat/gamja/">gamja webchat</a>.</p>
<p>
you can also connect from any xmpp client with our <a href="https://biboumi.louiz.org">biboumi gateway</a>.
it runs on <a href="https://tilde.team/wiki/xmpp#biboumi">tilde.team</a>'s xmpp server.
channels can be joined with this room-format: <a href="xmpp:#helpdesk@biboumi.tilde.team?join">#helpdesk@biboumi.tilde.team</a>
</p>
<p>or localhost 6667 from a shell on any of the member tildes :) (port 7766 on ~town)</p>
<h3>mumble server</h3>
<p>connect to mumble.tilde.chat on the default port using "tilde.chat" as the password and talk!</p>
<p>might not be anyone there. shout about it on irc first!</p>
<h3>how to irc?</h3>
<p>if you have never used irc before, you might find <a href="https://tilde.wiki/Tilde.chat/Getting_Started">our intro to irc guide</a> useful.
<h3>member tildes</h3>
<ul>
<h3>channel novelties</h3>
<p>there are some fun things on tilde.chat run by <a href="https://tilde.wiki/Tilde.chat/Bots">robots</a>, such as:<p>
<ul>
<li><p>in channels with <em>tooter</em> in them, <a rel="me" href="https://tilde.zone/@tildeverse">!toot goes here: mastodon</a></p></li>
<li><p><em>badger</em> is a bot that gives you badges for participating in channels it is in</p></li>
</ul>
<?php
foreach($members as $member) {
echo "\t\t<li><a href='{$member->link}'>{$member->name}</a> (sysadmin";
if (count($member->sysadmins) != 1) {
echo "s"; // plural
}
echo ": ";
$count = count($member->sysadmins);
foreach ($member->sysadmins as $sysadmin) {
echo "<a href='{$sysadmin[1]}'>{$sysadmin[0]}</a>";
if ($count > 1) {
echo ", ";
$count--;
}
}
echo ", channel: {$member->channel})</li>&nbsp;&nbsp;{$member->description}<br><br>\n";
}
?>
<h3>mumble server</h3>
<p>we also have non-irc voice chat!</p>
<p>use a <a href="https://mumble.info">mumble client</a> to connect to tilde.chat on the default port using "tilde.chat" as the password and talk!</p>
<p>might not be anyone there. shout about it on irc first!</p>
</ul>
<hr>
<!-- misc channel info -->
<h3><a href="/stats/">channel info and stats</a></h3>
<!-- closed. see: https://tilde.chat/discord/
<p>* = bridged to discord: tilde.chat private discord invites for tilde members <a href="/discord">here</a>. join and confirm that you're a tilde member to get access to the channels (including a private Discord channel for your tilde). bridging configuration can be adjusted per request.</p>
-->
<hr>
<h3>rules/guidelines</h3>
<p>please see the <a href="wiki/?page=etiquette">etiquette guide</a></p>
<p>chatting/using tilde.chat irc servers implies agreement with the <a href="https://tilde.wiki/?page=code-of-conduct">code of conduct</a>. the <a href="https://tilde.town/wiki/conduct.html">tilde.town code of conduct</a> applies as well.</p>
<p>if you have anything that needs oper attention, please send a mail to opers at tilde dot chat.</p>
<p>incidents will be handled according to the CoC as well as by admins of your home tilde</p>
<hr>
<h3>rules/guidelines</h3>
<p>please see the <a href="https://tilde.wiki/IRC_etiquette_guide">etiquette guide</a></p>
<p>chatting/using tilde.chat irc servers implies agreement with the <a href="https://tilde.wiki/Code_of_conduct">code of conduct</a>. the <a href="https://tilde.town/wiki/conduct.html">tilde.town code of conduct</a> applies as well.</p>
<p>it is recommended that you read the guide and codes of conduct, and try to abide by them even if you disagree</p>
<ul>
<li><p>failing to do so may result in your removal from individual channels, or the whole tilde.chat network.</p></li>
<li><p>bad behaviour may, on rare occasions, also result in tilde admins reconsidering your membership.</p></li>
<li><p>warnings before removal are usually given but are not guaranteed.</p></li>
</ul>
<p>if you have anything that needs oper attention, please send a mail to opers at tilde dot chat, or ask in #helpdesk</p>
<p>incidents will be handled according to the CoC as well as by admins of your home tilde</p>
<?php include 'footer.php'; ?>

33
motd/index.php Normal file
View File

@ -0,0 +1,33 @@
<?php
header("Content-Type: text/plain");
$node = $_GET["node"] ?? "hub";
echo shell_exec("figlet -w120 -f slant -- " . escapeshellarg($node) . ".tilde.chat");
echo "welcome to tilde.chat\n";
echo "this is the irc network for the tildeverse (https://tildeverse.org)\n";
echo "\n";
echo "check out the appropriate channel for your tilde:\n";
echo "\n";
$members = json_decode(file_get_contents("https://tildeverse.org/members.json", false, stream_context_create(['socket' => ['bindto' => '0:0']])))->members;
foreach ($members as $member) {
echo " - " . str_pad($member->name, 17) . "~> " . $member->channel . "\n";
}
echo "\n";
echo "the main lobby channel is #meta. you must log in with nickserv to speak there.\n";
echo "to get registered, run /quote ns help register or read our wiki: https://tilde.wiki/Tilde.chat/Nicks_and_Accounts\n";
echo "check out https://tilde.chat/stats/ or run /list to find other channels\n";
echo "/join #helpdesk if you need assistance\n";
echo "\n";
echo "check out #tilderadio for our internet radio station!\n";
echo "\n";
echo "please see our etiquette guidelines: https://tilde.wiki/IRC_etiquette_guide\n";
echo "\n";
echo " ~~ be excellent to each other ~~";

View File

@ -1,22 +1,30 @@
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">~chat</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="/wiki/"><i class="fa fa-edit"></i> wiki</a></li>
<li><a href="https://quotes.tilde.chat/"><i class="fa fa-comment"></i> qdb</a></li>
<li><a href="https://web.tilde.chat/"><i class="fa fa-comments-o"></i> webchat</a></li>
<li><a href="/stats/"><i class="fa fa-bar-chart"></i> stats</a></li>
<li><a href="/badges/"><i class="fa fa-shield"></i> badges</a></li>
</ul>
</div>
</div>
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">~chat</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="https://tilde.wiki/Tilde.chat"><i class="fa fa-edit"></i> wiki</a></li>
<li><a href="https://quotes.tilde.chat/"><i class="fa fa-comment"></i> qdb</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-comments-o"></i> webchat <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="/kiwi/">kiwiirc</a></li>
<li><a href="/gamja/">gamja</a></li>
</ul>
</li>
<li><a href="/stats/"><i class="fa fa-bar-chart"></i> channels</a></li>
<li><a href="/badges/"><i class="fa fa-shield"></i> badges</a></li>
</ul>
</div>
</div>
</nav>

View File

@ -1,7 +1,8 @@
hey hi
welcome!
please see
https://tilde.chat/wiki/?page=etiquette
https://tilde.wiki/IRC_etiquette_guide
for more information on the rules for tilde.chat

View File

@ -2,13 +2,28 @@
$title="stats page";
$desc="stats about tilde.chat and its channels";
$stats = json_decode(file_get_contents("../stats.json"));
$members = json_decode(file_get_contents("https://tildeverse.org/members.json", false, stream_context_create(['socket' => ['bindto' => '0:0']])))->members;
include __DIR__."/../header.php";
?>
<h1>channels</h1>
<h3><a href="https://tildeverse.org/members/">member tildes</a></h3>
<?php foreach($members as $member) {
$chans = explode(", ", $member->channel); ?>
<div class="btn-group">
<a class="btn btn-default" href="<?=htmlspecialchars($member->link)?>"><?=htmlspecialchars($member->name)?></a>
<?php foreach ($chans as $chan) { ?>
<a class="btn btn-primary" href="https://tilde.chat/kiwi/<?=htmlspecialchars($chan)?>"><?=htmlspecialchars($chan)?></a>
<?php } ?>
</div>
<?php } ?>
<h1>stats</h1>
<hr>
<p>there are <?=$stats->usercount?> users across <?=$stats->channelcount?> channels.</p>
<p>if the channel is set with <a href="https://wiki.inspircd.org/Channel_Modes">chanmode +s</a> it will be omitted from this list.</p>
<h3>full channel stats</h3>
<p>there are <?=htmlspecialchars($stats->usercount)?> users across <?=htmlspecialchars($stats->channelcount)?> channels.</p>
<p>if the channel is set with <a href="https://docs.inspircd.org/3/modes/#channel-modes">chanmode +s</a> it will be omitted from this list.</p>
<p>the table is sortable by clicking on the column headers</p>
<div class="table-responsive">
<table class="table table-striped table-bordered table-hover">
<thead>
@ -22,9 +37,9 @@ include __DIR__."/../header.php";
<tbody data-link="row" class="rowlink">
<?php foreach($stats->channels as $channel): ?>
<tr>
<td><a href="<?=$channel->webchatlink?>"><?=$channel->name?></a></td>
<td><?=$channel->usercount?></td>
<td style="word-wrap: break-word; white-space: pre-wrap; max-width:700px"><?=$channel->topic?></td>
<td><a href="<?=htmlspecialchars($channel->webchatlink)?>"><?=htmlspecialchars($channel->name)?></a></td>
<td><?=htmlspecialchars($channel->usercount)?></td>
<td style="word-wrap: break-word; white-space: pre-wrap; max-width:700px"><?=htmlspecialchars($channel->topic)?></td>
</tr>
<?php endforeach; ?>
</tbody>

View File

@ -1,37 +0,0 @@
# tilde.chat wiki
hi there, welcome to our wiki!
to contribute to the wiki:
* [fork the repo](https://tildegit.org/repo/fork/53)
* clone the repo to your local machine (or your public_html folder on the tilde.team box for live testing)
```sh
git clone git@tilde.chat:tildeverse/tilde.chat
```
* create a new branch for your page
```sh
git checkout -b my-new-page
```
* if you want to add a new page, copy `template.md` into your new page!
```sh
cp template.md my-new-page.md
```
* edit as needed!
* commit your changes and [create a pull request](https://tildegit.org/tildeverse/tilde.chat/pulls) :)
```sh
git add --all
git commit -m "added my-new-page"
git push origin my-new-page # this should match the branch name you created earlier
```
* create a pull request on the [site](https://tildegit.org/tildeverse/tilde.chat) repo
thanks!~
ps. if you have any questions, ask on irc! (preferably in #meta)

View File

@ -1,76 +0,0 @@
<?php
require __DIR__.'/../vendor/autoload.php';
use Tildeverse\Wiki\Parser;
$additional_head = "
<style>
:target:before {
content:\"\";
display:block;
height:90px; /* fixed header height*/
margin:-90px 0 0; /* negative fixed header height */
}
</style>
<meta property='og:type' content='website'>
<meta property='og:site_name' content='tilde.chat wiki'>
";
$parser = Parser::factory();
if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
$title = "tilde.chat~wiki";
$additional_head .= "
<meta property='og:title' content='$title'>
<meta property='og:url' content='https://tilde.chat{$_SERVER['REQUEST_URI']}'>
<meta property='og:description' content='tilde.chat wiki'>
";
include __DIR__.'/../header.php';
// render wiki index ?>
<h1>tilde.chat wiki</h1>
<p>welcome to the tilde.chat wiki!</p>
<p>if you want to contribute, check out the
<a href="https://tildegit.org/tildeverse/tilde.chat/src/branch/master/wiki">source</a> and open a PR!
</p>
<p>commits to master will be automatically deployed</p>
<hr>
<h3>pages:</h3>
<?php
foreach (glob("pages/*.md") as $page) {
$yaml = $parser->parse(file_get_contents($page))->getYAML();
if (!$yaml["published"]) continue; ?>
<a href="<?=basename($page, ".md")?>"><?=$yaml["title"]?></a><br>
<?php }
} else {
$pg = $parser->parse(file_get_contents("pages/{$_GET["page"]}.md"));
$yml = $pg->getYAML();
$title = $yml['title'] . " | tilde.chat~wiki";
$description = $yml['description'] ?? "tilde.chat wiki article {$yml['title']}";
$additional_head .= "
<meta property='og:title' content='$title'>
<meta property='og:url' content='https://tilde.chat{$_SERVER['REQUEST_URI']}'>
<meta property='og:description' content='$description'>
";
include __DIR__.'/../header.php';
// show a single page ?>
<a href=".">&lt; ~wiki</a>
<hr>
<?=$pg->getContent()?>
<hr>
<a href="https://tildegit.org/tildeverse/tilde.chat/src/branch/master/wiki/pages/<?=$_GET["page"]?>.md">
<i class="fa fa-edit"></i> source
</a>
<?php }
include __DIR__.'/../footer.php';

View File

@ -1,94 +0,0 @@
---
author: ~cmccabe
published: true
title: cool irc bots
description: information about irc bots on tilde.chat
category:
- main
---
# tilde.chat irc bots
you might have seen some bots lurking about in chat. this page is intended to be a common place for documentation.
bots should be well behaved and efficient with system resources. if you see a bot that is not, please remind the botmaster about this and/or notify an admin. naughty bots can make the system less enjoyable for everyone, and we all have to work together to police them.
## rules and etiquette for tilde.chat irc bots
your bot must respond to !botlist with the following information:
- your system username (as creator/botmaster) - so we can contact you if the bot misbehaves
- one line description of the bot's functionality
- list of the bots public commands
be conservative about automatically re-connecting to the server or channel.
if your bot's code is not yet stable, keep it in the #bots channel and do testing there.
don't join #chaos or unless you want your bot to be spammed to hell and back.
all of the bots should also adhere to the following RFC specification: [RFC 2: Standardising IRC Bot Behavior](https://rfc.tildeverse.org/rfcs/2).
## tilde.team bot starter kit
[khuxkm](https://khuxkm.tilde.team) is hard at work developing a starter kit framework in python that you can use to build your own irc bot. find the [source here](https://tildegit.org/team/teambot). it's installed globally on ~team, so get coding!
## add your bot to the list below
follow the example of sedbot when you add your bot in a PR to the wiki
* sedbot
- botmaster: [~ben](https://ben.tilde.team)
- short description: sent a typo in chat? fix it up with a sed expression and sedbot will try to correct it
- list of functions:
+ s/needle/replace/flags
+ most regex character classes match here
+ flags include `g` and `i`
- [source](https://tildegit.org/ben/sedbot)
* bitbot
- botmaster: [~jesopo](https://lolnerd.net)
- short description: hand-crafted, artisanal `IRCv3` bot. slowly taking over `tilde.chat`. we bow before bitbot.
- list of functions:
+ `sed`-like corrections like `sedbot`
+ weather/time per user (`,weather`/`,w`/`,time`)
+ user pronouns: `,pronouns`
+ wolfram alpha integration: `,wa`
+ translation services: `,translate le pain est sale`
+ some per-user configuration available via `,config`
+ git hooks (including gitea) - notifications on push/etc
+ write your own functionality with a plugin!
+ ducc frens (when a duck appears: `,bef`/`,trap`, see stats with `,friends`/`,enemies`)
- [source](https://github.com/jesopo/bitbot)
* tracer
- botmaster: [~ben](https://ben.tilde.team)
- short description: generate tracery output from grammars in you ~/.tracery (on ~team) -
forked and ported from [selfsame/tracer](https://notabug.org/selfsame/tracer) for py3 support
- list of functions:
+ !!list
+ !!<grammar>
+ !!fuse <grammar1> <grammar2>
+ | at the end of commands will echo the output in a new message
eg: !!drink | !toot
- [source](https://tildegit.org/ben/tracer)
* tooter
- botmaster: [~ben](https://ben.tilde.team)
- short description: toots from @tildeverse@tilde.zone (@tildeteam@tilde.zone in #team)
- list of functions:
+ !toot <message>
- [source](https://tildegit.org/ben/tooter)
* radiobot
- botmaster: [~ben](https://ben.tilde.team)
- short description: a janky bot in bash to post tilderadio updates - also toots from @tilderadio@tilde.zone
- list of functions:
+ radiobot: subscribe (or unsubscribe) - send a query when a dj goes online
+ radiobot: np - show what's currently playing on tilderadio
+ radiobot: dj - show who's currently broadcasting
+ radiobot: link - show a link to the tilderadio stream
+ radiobot: source - show a link to the sourcecode
+ radiobot: slogan - grab a random tilderadio slogan
- [source](https://tildegit.org/ben/radiobot)
* Babili
- botmaster: [~aewens](https://aewens.tilde.team)
- short description: A data aggregating bot for the IRC server, can as an API for other bots for handling historical data from the network
- list of functions:
+ View aggregated data at https://babili.xyz
- [source](https://tildegit.org/babili)

View File

@ -1,26 +0,0 @@
---
author: ~aewens
published: true
title: "A brief history of #chaos"
description: The background and lore behind the #chaos channel
category:
- main
---
# A Brief History of the Kingdom of #chaos
Our journey begins a few short days after aewens entered the IRC realm of ~team. There was simply far too much order to this growing community and something had to be done about this. It was then that aewens wrought #chaos upon the world.
As with all worlds, it became with only it's sole inhabitor and very little chaos can be done with only an individual. To rectify this, the gates to the kingdom of #chaos were opened forth to the world (or at the very least, the forum of #meta) and from which two new entities joined the kingom, ben and jan6. As being a new denizen to the IRC realms, aewens began with a slow start laying down the ground works for the kingdom as he figured out the nuances of how this world worked. It was suggested by ben to grant all users with the ability to harness the same power as the king of the kingdom to allow for the maximum amount of chaos to perpetuate throughout the kingdom, and so it was established. However, construction came to an abrupt halt when jan6 took the opportunity to usurp the kingdom as their own to become the new vengeful dictator.
Distraught to see his kingdom so quickly lost, aewens set out to reclaim his crown. It began with diplomatic negotiations, but jan6 would not relinquish the kingdom back to it's rightful heir. And so without any peaceful means to obtain what was rightfully his, aewens began to plot how retake the throne. The beginnings of the plan was simple, pleading through propoganda to the deities of the realm and creating something valuable enough to warrant a trade for the crown. Without anything of value to exchange for the crown initially, aewens began working on what would be an instrumental piece to this story: the bot of Babili.
The concept of using the bot was to provide value to the community, but to banish jan6 from utilizing its resources until the kingdom is returned back to its rightful heir to the throne. During this time, jan6 transitioned from being a vengeful dictator to a false prophet of chaos by attempting to instill rules and order upon the kingdom of chaos. Horrified to see what has become of the once pure chaos of his creation, aewens continued to plead to the deities to hear his prayers and right the wrongs being made. And so the IRC deity, khuxkm, entered the realm to see what was running amok only to continually be cast out by the false prophet. While awaiting for the deities to lay down judgement, aewens was hard at work to provide more functionality and uses to the bot to both appease the deities and to apply further restrictions to jan6.
However, aewens did not need to wait for jan6's resolve to break to return as the king of #chaos. A fortnight had passed since the initial betrayal and his prayers were heard, khuxkm both enraged by being cast out of the kingdom and from the sin of bringing order into the realm of chaos he dethroned the false prophet, jan6, and set aewens back upon the throne. Outraged by the meddling of the gods in the affairs of mere mortals, jan6 cursed the deities for their acts of foul play but heard nothing but the chortles of joy as the kingdom's one and true heir had returned. It was a time for celebration as chaos was restored and there was a brief period of what passes for peace throughout the realm.
While peace was returned to the kingdom of #chaos, it was not to stay. As the days went by, jan6 continued to curse the deities and demand for the actions to be undone. While his demands fell upon deaf ears as he lost favor from the deities, aewens listened with consideration and was struck with inspiration. While once his enemy, aewens was willing to set aside his rivalry in the name of chaos, and so he brought forth a proposal to the deities. To adhere to the maximum amount of chaos in the kingdom of #chaos, there would be a random event where the crown becomes a free-for-all to whoever could retrieve it first. The deities enjoyed this proposal and so it became law that at the whim of the deities they can initiate the race for the crown.
Once this law came to pass, the crown passed hands back and forth between jan6 and aewens for control over #chaos. But much like many wars, one side will change the game by introducing a new element that shifts the balance of the scales. The shift in power being when aewens trained the bot of Babili to wait until it hears the declaration that the race for the crown has begun and to snatch up the crown to bestow to it's maker. However, much like when aewens was previously crowned by another, jan6 cried out in frustration to this and declared it must be the workings of the deities rather than to accept the bot as the source of crown's bestowal. While funny at first, aewens took pride in his creation and set forth to make the workings of the bot made public for all to see, so that when the next race to the crown begins, jan6 and all else who wishes to take the crown from it's rightful heir will know exactly who they are messing with.
Long live the king!

View File

@ -1,48 +0,0 @@
---
author: ~ben
published: true
title: irc etiquette
description: some guidelines for chatiquette
category:
- main
---
# guidelines
some rules adapted from: [fizerkhan/irc-etiquette](https://github.com/fizerkhan/irc-etiquette)
## no flooding/spamming/trolling in main channels
multiline messages belong in a pastebin. feel free to use https://ttm.sh (`echo "text here" | curl -F'file=@-;' https://ttm.sh`) or https://paste.tildeverse.org for a graphical pastebin.
if you have a need to spam many lines or abuse the figlet feature of tildebot, please do so in the appropriate channel (#chaos or #shitposting).
this includes ascii art and/or figlet output. please be considerate.
bot commands belong in #bots. please limit yourself to 2 or 3 commands at a time. spamming commands is unacceptable and subject to the consequences below.
## don't be lazy - read the documentation
if people tell you to read the documentation then you should do so. never say: "i'm too lazy. come on. you all know what i need to do. just tell me what i need to do." this will get you ignored for all eternity. however you can expect to be told where to find the documentation. but if you get an url then get it and read it. if the documentation is too technical or you don't understand certain sections then say: "i have now read chapter 3.1 of the url you gave me and i understand how virtual domains work in general. but how would i use both virtual and non-virtual domains together?"
## unintended rudeness
sometimes you may feel that others are rude. you may get a response like "reinstall the package. restart the service. read the /usr/share/doc/mysoftware/readme." although this is a very brief reply it is likely not meant to be rude. irc is often like human interaction without all the friendly bits. other people have probably answered your question a dozen of times today and they just want to help you solve the problem - not become close friends with you. don't be offended by it. the people don't mean it.
## try to not repeat yourself
asking the same question every minute is annoying. if anyone in the channel isn't paying attention then they will neither read you the second and third time. and those who came back from lunch or sleep will likely see in their "lastlog" what has happened lately. this is too demanding.
## avoid obnoxious behavior
the tildeverse is a purpose-driven community, intended to provide an environment where people can feel comfortable and supported in learning, practicing, or teaching about technology. while this purpose permits for a wide variety of activities on tildverse IRC channels, obnoxious or intentionally annoying behavior is not allowed. be considerate of the others on the IRC board; think
about how they will perceive your chat messages. if people ask you to stop something, it's probably because you're being obnoxious, and you should cut it out. examples of obnoxious behavior include posting your stream of consciousness ideas when you are not actually interacting with others, repeating variations of phrases over and over, intentional join/part spam, or
interacting with bots to the point of crowding out interactions from others.
## last but not least
be considerate to your fellow tildizens and don't forget to have fun!
# consequences
* first offenses will be handled with a kick from the channel with an explanation of the undesirable channel. at this point, it's acceptable to rejoin.
* second offenses will be handled with a 1 hour tempban. following the tempban, an irc/chan op will check in and let you know what kinds of behaviors to avoid.
* third offenses will be the same as second, but with a 24 hour tempban period.
if the undesirable behavior continues, further methods (up to and including a permanent ban) will be discussed among the oper team.
if you have something that requires oper attention, please send an email to opers at tilde dot chat.

View File

@ -1,21 +0,0 @@
---
author: ~khuxkm
published: true
title: Ham Radio Operators
description: list of ham radio operators in the tildeverse!
category:
- main
---
This is a list of callsigns of tildeverse members.
- [KD2BWZ = khuxkm](//khuxkm.tilde.team)
- [NB0X = nonlinear](//nonlinear.radiofreqs.space)
- [W8TAU = englishm](//englishm.tilde.team)
- [Z35TUN = tunas](//tilde.town/~tunas/)
- [KC8BRO = StarGazer](//stargazer.radiofreqs.space)
- [KC3LYZ = robertr](//robertr.radiofreqs.space)
- [N3FOS = LickTheCheese](//lickthecheese.fuckup.club)
- [KK6GET = NoraCodes](//tilde.town/~noracodes)
A ham radio operator channel is available: [#hamradio](https://web.tilde.chat/?join=hamradio).

View File

@ -1,36 +0,0 @@
---
author: ~ben
published: true
title: tilde.chat servers
description: list of servers in the network
category:
- main
---
# server list
you can use irc.tilde.chat as a dns round robin between available servers. otherwise, feel free to connect directly to any of the nodes.
there are also three geo-round-robins available:
- na.tilde.chat
- eu.tilde.chat
- au.tilde.chat
try those for a more local connection. use port 6697 with ssl.
if you have an account on any of the shells, you can connect to localhost 6667 from there.
external connections use 6697 with ssl.
once you're connected, try `/map` to see the servers listed fully.
| server | location | hoster | notes |
|---|---|---|---|
| aussie.tilde.chat | australia | [aussies.space](https://aussies.space/) | |
| club.tilde.chat | canada | [tilde.club](https://tilde.club/) | |
| ctrl-c.tilde.chat | new york | [ctrl-c.club](http://ctrl-c.club) | |
| hub.tilde.chat | canada | [ben](https://ben.ttm.sh) | services, [webchat](https://web.tilde.chat), and [website](https://tilde.chat) live here |
| institute.tilde.chat | germany | [tilde.institute](https://tilde.institute/) | |
| team.tilde.chat | canada | [tilde.team](https://tilde.team/) | |
| thunix.tilde.chat | germany | [thunix](https://thunix.net) | |
| town.tilde.chat | toronto | [tilde.town](https://tilde.town/) | only accessible from localhost on port 7766; no external connections |

View File

@ -1,23 +0,0 @@
---
author: ~khuxkm
published: true
title: "#sevens"
description: Beware of those who speak in sevens, as you cannot know the fortitude of their souls. - A fun game khuxkm came up with.
category:
- main
---
# The game of #sevens
*Beware of those who speak in sevens, as you cannot know the fortitude of their souls.*
The game of #sevens is easy to pick up, and easy to understand, for anyone new. All messages must meet even one criterion:
- The amount of words used is 7.
- The amount of letters used is 7.
I understand this may be hard to do. For this, I provide you with help. If the amount of words or letters has 7 as its digital sum, the message passes.
If you fail, you get kicked out. Eventually, you'll be temporarily muted, but I'm tired.
This article was written to these specifications. It can't be that hard, can it?