Compare commits

...

35 Commits

Author SHA1 Message Date
el 44b2200981 Remove servers no longer in /map 2023-04-18 05:30:33 +00:00
Alexander 6e481daf06 minor text corrections based on my previous contribution (#57)
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
Robert Miles bbfaf5b97a Merge pull request 'validate page parameter to be a local filename' (#58) from alexlehm/tilde.chat:validate-page-param into master
Reviewed-on: tildeverse/tilde.chat#58
2023-01-27 05:13:19 +00:00
Alexander c2ec0439df validate page parameter to be a local filename 2023-01-26 18:39:24 +00:00
Alexander e5eb43ecc6 quickstart guide for weechat (#56)
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
Ben Harris 073b3e74ad fix indentation in wiki/index.php 2022-07-12 12:47:00 -04:00
Ben Harris 4d4d893417 fix link path 2022-07-12 12:41:34 -04:00
Ben Harris 6b71569369 oops wrong variable 2022-07-12 12:40:41 -04:00
Ben Harris 6bda5a078f sort wikipages by title and display as a table 2022-07-12 12:39:36 -04:00
Ben Harris ee1886e6b8 s/hub/newhub/ 2022-07-11 22:16:45 -04:00
Ben Harris 8f08f62ab5 remove link to mumble webclient 2022-07-11 13:06:28 -04:00
Ben Harris 8b5f6b1956 Merge pull request 'Add link to gamja in body text' (#54) from sebboh/tilde.chat:sebboh-patch-1 into master
Reviewed-on: tildeverse/tilde.chat#54
2022-07-08 16:29:07 +00:00
sebboh f8eebcabd7 Add link to gamja in body text 2022-07-08 15:07:12 +00:00
Ben Harris a59e22e8ed Merge pull request 'addendum to obnoxious behaviour; don't share it' (#53) from meldra/tilde.chat:master into master
Reviewed-on: tildeverse/tilde.chat#53
2022-07-06 18:40:18 +00:00
meldra 5ef8f03c0f addendum to obnoxious behaviour; don't share it 2022-07-06 18:36:43 +00:00
www-data 311f6a902e catch utf8 error 2022-06-12 20:04:37 -04:00
Ben Harris 24284be199 bump tildeteam/wiki 2022-02-16 13:43:45 -05:00
Ben Harris 104de86f2c print title outside of the markdown 2022-02-16 12:57:58 -05:00
Ben Harris 971ad500f4 update tildeteam/wiki to 2.0 2022-02-14 22:08:03 -05:00
Ben Harris d28b51fa6a
fix some typos and warnings 2022-01-16 15:11:20 -05:00
Ben Harris 9afc78c636 Merge pull request 'added #covid19 to etiquette SSP section' (#52) from moppers/tilde.chat:master into master
Reviewed-on: tildeverse/tilde.chat#52
2022-01-04 22:45:20 +00:00
anelki 7322fb9077 added #covid19 to etiquette SSP section 2022-01-04 17:29:41 -05:00
Ben Harris db48958686 Merge pull request 'typo in preface of self-accountability page' (#51) from anelki/tilde.chat:master into master
Reviewed-on: tildeverse/tilde.chat#51
2021-11-28 15:50:55 +00:00
anelki 2bc011cb05 typo in preface 2021-11-27 04:42:39 +00:00
Ben Harris 256b6b06fc Merge pull request 'Add #aussie to shared strike policy' (#50) from fosslinux/tilde.chat:ssp into master
Reviewed-on: tildeverse/tilde.chat#50
2021-10-15 18:19:42 +00:00
fosslinux cce845046a Add #aussie to shared strike policy 2021-10-15 15:00:28 +11:00
Ben Harris 8cc1fab857 Merge pull request 'quotation mark nitpicking' (#49) from anelki/tilde.chat:pronouns-helpdesk into master
Reviewed-on: tildeverse/tilde.chat#49
2021-10-07 16:08:50 +00:00
anelki 3a44125e6f Merge branch 'master' into pronouns-helpdesk 2021-10-07 15:53:24 +00:00
anelki 9288a381a5 oh for the love of christ nitpicking (quotation marks) 2021-10-07 11:51:57 -04:00
Ben Harris 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
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 2021-10-07 11:42:46 -04:00
Benjamin Morrison af8f5c94d8 add #institute to ssp participating channels list 2021-10-07 10:43:10 -04:00
Ben Harris 207896a090 Merge pull request 'added #club and #tilderadio to SSP' (#46) from deepend-patch-1 into master
Reviewed-on: tildeverse/tilde.chat#46
2021-10-07 04:05:56 +00:00
deepend 93c0fdb79b added #club and #tilderadio to SSP 2021-10-07 03:50:53 +00:00
Ben Harris 2fe8c5879c Merge pull request 'Added Shared Strike Policy' (#45) from demure/tilde.chat:master into master
Reviewed-on: tildeverse/tilde.chat#45
2021-10-07 02:55:59 +00:00
21 changed files with 765 additions and 191 deletions

View File

@ -21,5 +21,8 @@ trigger:
steps:
- name: deploy
commands:
- sudo -Hu www-data git -C /var/www/tilde.chat pull --rebase origin master
- cd /var/www/tilde.chat
- sudo -Hu www-data git fetch
- sudo -Hu www-data git reset --hard origin/master
- sudo -Hu www-data composer install

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,5 +1,6 @@
<?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%2Ftilde.chat%2Fkiwi%2F&colorB=%2300cc00";
}
@ -8,9 +9,9 @@
$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%2Ftilde.chat%2Fkiwi%2F{$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,5 +1,6 @@
{
"require": {
"tildeteam/wiki": "^1.0.0"
}
"require": {
"tildeteam/wiki": "^2.0",
"ext-json": "*"
}
}

628
composer.lock generated
View File

@ -4,123 +4,290 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "21b797601a3035a039996278b8e9b035",
"content-hash": "cbfe4e230864ce455fb4e62a47e4a7fc",
"packages": [
{
"name": "erusev/parsedown",
"version": "1.7.4",
"name": "dflydev/dot-access-data",
"version": "v3.0.1",
"source": {
"type": "git",
"url": "https://github.com/erusev/parsedown.git",
"reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3"
"url": "https://github.com/dflydev/dflydev-dot-access-data.git",
"reference": "0992cc19268b259a39e86f296da5f0677841f42c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3",
"reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3",
"url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/0992cc19268b259a39e86f296da5f0677841f42c",
"reference": "0992cc19268b259a39e86f296da5f0677841f42c",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
"require-dev": {
"phpstan/phpstan": "^0.12.42",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
"scrutinizer/ocular": "1.6.0",
"squizlabs/php_codesniffer": "^3.5",
"vimeo/psalm": "^3.14"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "3.x-dev"
}
},
"autoload": {
"psr-4": {
"Dflydev\\DotAccessData\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Dragonfly Development Inc.",
"email": "info@dflydev.com",
"homepage": "http://dflydev.com"
},
{
"name": "Beau Simensen",
"email": "beau@dflydev.com",
"homepage": "http://beausimensen.com"
},
{
"name": "Carlos Frutos",
"email": "carlos@kiwing.it",
"homepage": "https://github.com/cfrutos"
},
{
"name": "Colin O'Dell",
"email": "colinodell@gmail.com",
"homepage": "https://www.colinodell.com"
}
],
"description": "Given a deep data structure, access data by dot notation.",
"homepage": "https://github.com/dflydev/dflydev-dot-access-data",
"keywords": [
"access",
"data",
"dot",
"notation"
],
"support": {
"issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
"source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.1"
},
"time": "2021-08-13T13:06:58+00:00"
},
{
"name": "league/commonmark",
"version": "2.2.2",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
"reference": "13d7751377732637814f0cda0e3f6d3243f9f769"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/13d7751377732637814f0cda0e3f6d3243f9f769",
"reference": "13d7751377732637814f0cda0e3f6d3243f9f769",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": ">=5.3.0"
"league/config": "^1.1.1",
"php": "^7.4 || ^8.0",
"psr/event-dispatcher": "^1.0",
"symfony/deprecation-contracts": "^2.1 || ^3.0",
"symfony/polyfill-php80": "^1.15"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35"
"cebe/markdown": "^1.0",
"commonmark/cmark": "0.30.0",
"commonmark/commonmark.js": "0.30.0",
"composer/package-versions-deprecated": "^1.8",
"erusev/parsedown": "^1.0",
"ext-json": "*",
"github/gfm": "0.29.0",
"michelf/php-markdown": "^1.4",
"phpstan/phpstan": "^0.12.88 || ^1.0.0",
"phpunit/phpunit": "^9.5.5",
"scrutinizer/ocular": "^1.8.1",
"symfony/finder": "^5.3",
"symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0",
"unleashedtech/php-coding-standard": "^3.1",
"vimeo/psalm": "^4.7.3"
},
"suggest": {
"symfony/yaml": "v2.3+ required if using the Front Matter extension"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "2.3-dev"
}
},
"autoload": {
"psr-0": {
"Parsedown": ""
"psr-4": {
"League\\CommonMark\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause"
],
"authors": [
{
"name": "Emanuil Rusev",
"email": "hello@erusev.com",
"homepage": "http://erusev.com"
"name": "Colin O'Dell",
"email": "colinodell@gmail.com",
"homepage": "https://www.colinodell.com",
"role": "Lead Developer"
}
],
"description": "Parser for Markdown.",
"homepage": "http://parsedown.org",
"description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)",
"homepage": "https://commonmark.thephpleague.com",
"keywords": [
"commonmark",
"flavored",
"gfm",
"github",
"github-flavored",
"markdown",
"md",
"parser"
],
"time": "2019-12-30T22:54:17+00:00"
"support": {
"docs": "https://commonmark.thephpleague.com/",
"forum": "https://github.com/thephpleague/commonmark/discussions",
"issues": "https://github.com/thephpleague/commonmark/issues",
"rss": "https://github.com/thephpleague/commonmark/releases.atom",
"source": "https://github.com/thephpleague/commonmark"
},
"funding": [
{
"url": "https://www.colinodell.com/sponsor",
"type": "custom"
},
{
"url": "https://www.paypal.me/colinpodell/10.00",
"type": "custom"
},
{
"url": "https://github.com/colinodell",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/league/commonmark",
"type": "tidelift"
}
],
"time": "2022-02-13T15:00:57+00:00"
},
{
"name": "erusev/parsedown-extra",
"version": "0.8.1",
"name": "league/config",
"version": "v1.1.1",
"source": {
"type": "git",
"url": "https://github.com/erusev/parsedown-extra.git",
"reference": "91ac3ff98f0cea243bdccc688df43810f044dcef"
"url": "https://github.com/thephpleague/config.git",
"reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/erusev/parsedown-extra/zipball/91ac3ff98f0cea243bdccc688df43810f044dcef",
"reference": "91ac3ff98f0cea243bdccc688df43810f044dcef",
"url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e",
"reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e",
"shasum": ""
},
"require": {
"erusev/parsedown": "^1.7.4"
"dflydev/dot-access-data": "^3.0.1",
"nette/schema": "^1.2",
"php": "^7.4 || ^8.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35"
"phpstan/phpstan": "^0.12.90",
"phpunit/phpunit": "^9.5.5",
"scrutinizer/ocular": "^1.8.1",
"unleashedtech/php-coding-standard": "^3.1",
"vimeo/psalm": "^4.7.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.2-dev"
}
},
"autoload": {
"psr-0": {
"ParsedownExtra": ""
"psr-4": {
"League\\Config\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
"BSD-3-Clause"
],
"authors": [
{
"name": "Emanuil Rusev",
"email": "hello@erusev.com",
"homepage": "http://erusev.com"
"name": "Colin O'Dell",
"email": "colinodell@gmail.com",
"homepage": "https://www.colinodell.com",
"role": "Lead Developer"
}
],
"description": "An extension of Parsedown that adds support for Markdown Extra.",
"homepage": "https://github.com/erusev/parsedown-extra",
"description": "Define configuration arrays with strict schemas and access values with dot notation",
"homepage": "https://config.thephpleague.com",
"keywords": [
"markdown",
"markdown extra",
"parsedown",
"parser"
"array",
"config",
"configuration",
"dot",
"dot-access",
"nested",
"schema"
],
"time": "2019-12-30T23:20:37+00:00"
"support": {
"docs": "https://config.thephpleague.com/",
"issues": "https://github.com/thephpleague/config/issues",
"rss": "https://github.com/thephpleague/config/releases.atom",
"source": "https://github.com/thephpleague/config"
},
"funding": [
{
"url": "https://www.colinodell.com/sponsor",
"type": "custom"
},
{
"url": "https://www.paypal.me/colinpodell/10.00",
"type": "custom"
},
{
"url": "https://github.com/colinodell",
"type": "github"
}
],
"time": "2021-08-14T12:15:32+00:00"
},
{
"name": "mnapoli/front-yaml",
"version": "1.8.0",
"version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/mnapoli/FrontYAML.git",
"reference": "76baa8ca538e111bfe53ac49c6a512ec5ea2bf54"
"reference": "58d2c735db395000eb9c181acdc7fb9a901e4a1a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/mnapoli/FrontYAML/zipball/76baa8ca538e111bfe53ac49c6a512ec5ea2bf54",
"reference": "76baa8ca538e111bfe53ac49c6a512ec5ea2bf54",
"url": "https://api.github.com/repos/mnapoli/FrontYAML/zipball/58d2c735db395000eb9c181acdc7fb9a901e4a1a",
"reference": "58d2c735db395000eb9c181acdc7fb9a901e4a1a",
"shasum": ""
},
"require": {
"erusev/parsedown": "~1.0",
"php": ">=7.3",
"symfony/yaml": "~2.1|^3.0|^4.0|^5.0"
"league/commonmark": "^2.0",
"php": "^7.4|^8.0",
"symfony/yaml": "^4.0|^5.0|^6.0"
},
"require-dev": {
"league/commonmark": "~1.4",
"phpunit/phpunit": "^9.4"
"phpunit/phpunit": "^9.0"
},
"type": "library",
"autoload": {
@ -132,20 +299,220 @@
"license": [
"MIT"
],
"time": "2020-12-04T10:52:19+00:00"
"support": {
"source": "https://github.com/mnapoli/FrontYAML/tree/2.0.2"
},
"time": "2021-12-19T17:35:56+00:00"
},
{
"name": "symfony/deprecation-contracts",
"version": "v2.2.0",
"name": "nette/schema",
"version": "v1.2.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665"
"url": "https://github.com/nette/schema.git",
"reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665",
"reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665",
"url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df",
"reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df",
"shasum": ""
},
"require": {
"nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
"php": ">=7.1 <8.2"
},
"require-dev": {
"nette/tester": "^2.3 || ^2.4",
"phpstan/phpstan-nette": "^0.12",
"tracy/tracy": "^2.7"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0-only",
"GPL-3.0-only"
],
"authors": [
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
}
],
"description": "📐 Nette Schema: validating data structures against a given Schema.",
"homepage": "https://nette.org",
"keywords": [
"config",
"nette"
],
"support": {
"issues": "https://github.com/nette/schema/issues",
"source": "https://github.com/nette/schema/tree/v1.2.2"
},
"time": "2021-10-15T11:40:02+00:00"
},
{
"name": "nette/utils",
"version": "v3.2.7",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
"reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nette/utils/zipball/0af4e3de4df9f1543534beab255ccf459e7a2c99",
"reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99",
"shasum": ""
},
"require": {
"php": ">=7.2 <8.2"
},
"conflict": {
"nette/di": "<3.0.6"
},
"require-dev": {
"nette/tester": "~2.0",
"phpstan/phpstan": "^1.0",
"tracy/tracy": "^2.3"
},
"suggest": {
"ext-gd": "to use Image",
"ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
"ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
"ext-json": "to use Nette\\Utils\\Json",
"ext-mbstring": "to use Strings::lower() etc...",
"ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
"ext-xml": "to use Strings::length() etc. when mbstring is not available"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause",
"GPL-2.0-only",
"GPL-3.0-only"
],
"authors": [
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
"homepage": "https://nette.org/contributors"
}
],
"description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
"homepage": "https://nette.org",
"keywords": [
"array",
"core",
"datetime",
"images",
"json",
"nette",
"paginator",
"password",
"slugify",
"string",
"unicode",
"utf-8",
"utility",
"validation"
],
"support": {
"issues": "https://github.com/nette/utils/issues",
"source": "https://github.com/nette/utils/tree/v3.2.7"
},
"time": "2022-01-24T11:29:14+00:00"
},
{
"name": "psr/event-dispatcher",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/event-dispatcher.git",
"reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
"reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
"shasum": ""
},
"require": {
"php": ">=7.2.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\EventDispatcher\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Standard interfaces for event handling.",
"keywords": [
"events",
"psr",
"psr-14"
],
"support": {
"issues": "https://github.com/php-fig/event-dispatcher/issues",
"source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
},
"time": "2019-01-08T18:20:26+00:00"
},
{
"name": "symfony/deprecation-contracts",
"version": "v2.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"shasum": ""
},
"require": {
@ -154,7 +521,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.2-dev"
"dev-main": "2.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@ -182,6 +549,9 @@
],
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
@ -196,32 +566,35 @@
"type": "tidelift"
}
],
"time": "2020-09-07T11:33:47+00:00"
"time": "2021-07-12T14:48:14+00:00"
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.22.1",
"version": "v1.24.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
"reference": "30885182c981ab175d4d034db0f6f469898070ab"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
"reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
"reference": "30885182c981ab175d4d034db0f6f469898070ab",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"provide": {
"ext-ctype": "*"
},
"suggest": {
"ext-ctype": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
"dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@ -258,6 +631,9 @@
"polyfill",
"portable"
],
"support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
@ -272,32 +648,115 @@
"type": "tidelift"
}
],
"time": "2021-01-07T16:49:33+00:00"
"time": "2021-10-20T20:35:02+00:00"
},
{
"name": "symfony/yaml",
"version": "v5.2.5",
"name": "symfony/polyfill-php80",
"version": "v1.24.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "298a08ddda623485208506fcee08817807a251dd"
"url": "https://github.com/symfony/polyfill-php80.git",
"reference": "57b712b08eddb97c762a8caa32c84e037892d2e9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/298a08ddda623485208506fcee08817807a251dd",
"reference": "298a08ddda623485208506fcee08817807a251dd",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9",
"reference": "57b712b08eddb97c762a8caa32c84e037892d2e9",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Php80\\": ""
},
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ion Bazan",
"email": "ion.bazan@gmail.com"
},
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2021-09-13T13:58:33+00:00"
},
{
"name": "symfony/yaml",
"version": "v5.4.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "e80f87d2c9495966768310fc531b487ce64237a2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/e80f87d2c9495966768310fc531b487ce64237a2",
"reference": "e80f87d2c9495966768310fc531b487ce64237a2",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"symfony/deprecation-contracts": "^2.1",
"symfony/polyfill-ctype": "~1.8"
"symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
"symfony/console": "<4.4"
"symfony/console": "<5.3"
},
"require-dev": {
"symfony/console": "^4.4|^5.0"
"symfony/console": "^5.3|^6.0"
},
"suggest": {
"symfony/console": "For validating YAML files using the lint command"
@ -330,6 +789,9 @@
],
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/yaml/tree/v5.4.3"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
@ -344,19 +806,19 @@
"type": "tidelift"
}
],
"time": "2021-03-06T07:59:01+00:00"
"time": "2022-01-26T16:32:32+00:00"
},
{
"name": "tildeteam/wiki",
"version": "1.0.0",
"version": "2.0.8",
"source": {
"type": "git",
"url": "https://tildegit.org/team/tildewiki",
"reference": "519497aa9ed64b5f614a544d98096e448b8860e2"
"reference": "dcbb9740225768c74cfd0002a150549cd6df4bc4"
},
"require": {
"erusev/parsedown-extra": "^0.8.1",
"mnapoli/front-yaml": "^1.8.0"
"mnapoli/front-yaml": "^2.0.0",
"php": "^7.4|^8.0"
},
"require-dev": {
"phpunit/phpunit": "^9.5"
@ -379,13 +841,13 @@
"role": "Developer"
}
],
"description": "parsedown extensions for tilde wikis",
"description": "unified extensions for tilde wikis",
"homepage": "https://tildegit.org/team/tildewiki",
"keywords": [
"markdown",
"wiki"
],
"time": "2021-03-17T16:29:47+00:00"
"time": "2022-02-16T18:31:48+00:00"
}
],
"packages-dev": [],
@ -394,7 +856,9 @@
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform": {
"ext-json": "*"
},
"platform-dev": [],
"plugin-api-version": "1.1.0"
"plugin-api-version": "2.2.0"
}

View File

@ -25,7 +25,11 @@ def unsanitize(node, default=""):
v = node.text + "=" * (4 - missing_padding)
else:
v = node.text
return base64.b64decode(v).decode("utf-8")
try:
return base64.b64decode(v).decode("utf-8")
except:
return "failed to read topic as utf-8"
return node.text

View File

@ -1,5 +1,5 @@
<?php include 'header.php'; ?>
<h1>tilde.chat <img src="/badges/badge.php"></h1>
<h1>tilde.chat <img src="/badges/badge.php" alt="tilde user badge"></h1>
<hr>
<p>hey hi</p>
@ -14,7 +14,7 @@
<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="wiki/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/">webchat</a>.</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.
@ -23,7 +23,6 @@
<h3>mumble server</h3>
<p>use your client to connect to tilde.chat on the default port using "tilde.chat" as the password and talk!</p>
<p>there's also a <a href="https://tilde.chat/mumble/">web client</a>. use the same password.</p>
<p>might not be anyone there. shout about it on irc first!</p>
<hr>

View File

@ -22,7 +22,6 @@
<li><a href="/gamja/">gamja</a></li>
</ul>
</li>
<li><a href="/mumble/"><i class="fa fa-microphone"></i> mumble</a></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>

View File

@ -30,6 +30,11 @@ php -S localhost:9000
this will run your site at http://localhost:9000/
if you are running the development server on your tilde account, you
will not be able to access it on (hostname):9000 because it only runs
on localhost, but you can create a tunnel with
ssh -L 9000:localhost:9000
to access from your localhost:9000 address
* edit as needed!

View File

@ -15,10 +15,19 @@ $additional_head = "
<meta property='og:site_name' content='tilde.chat wiki'>
";
$parser = wiki::factory();
wiki::$bootstrap = wiki::$forkawesome = true;
$parser = wiki::factory(true);
if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
if(isset($_GET["page"])) {
$page=$_GET["page"];
} else {
$page="";
}
if(preg_match("/[^a-z0-9_-]/", $page)) {
$page="";
}
if ($page=="" || !file_exists("pages/$page.md")) {
$title = "tilde.chat~wiki";
$additional_head .= "
@ -27,6 +36,20 @@ if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
<meta property='og:description' content='tilde.chat wiki'>
";
include __DIR__.'/../header.php';
$pages = [];
foreach (glob("pages/*.md") as $page) {
$yaml = $parser->parse(file_get_contents($page))->getYAML();
if (!$yaml["published"]) continue;
$pages[] = [
"title" => $yaml["title"],
"description" => $yaml["description"],
"name" => basename($page, ".md"),
];
}
usort($pages, function($a, $b) { return $a["title"] <=> $b["title"]; });
// render wiki index ?>
<h1>tilde.chat wiki</h1>
@ -39,18 +62,28 @@ if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
<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 }
<h2>pages:</h2>
<table class="table table-responsive table-hover table-striped">
<thead>
<tr>
<th>title</th>
<th>description</th>
</tr>
</thead>
<tbody>
<?php foreach ($pages as $page) { ?>
<tr>
<td><a href="<?=$page["name"]?>"><?=$page["title"]?></a></td>
<td><?=$page["description"] ?? ""?></td>
</tr>
<?php } ?>
</tbody>
</table>
<?php
} else {
$pg = $parser->parse(file_get_contents("pages/{$_GET["page"]}.md"));
$pg = $parser->parse(file_get_contents("pages/$page.md"));
$yml = $pg->getYAML();
$title = $yml['title'] . " | tilde.chat~wiki";
$description = $yml['description'] ?? "tilde.chat wiki article {$yml['title']}";
@ -63,11 +96,12 @@ if (!isset($_GET["page"]) || !file_exists("pages/{$_GET['page']}.md")) {
// show a single page ?>
<a href=".">&lt; ~wiki</a>
<h1><?=$yml['title']?></h1>
<hr>
<?=$pg->getContent()?>
<hr>
<a href="https://tildegit.org/tildeverse/tilde.chat/src/branch/master/wiki/pages/<?=$_GET["page"]?>.md">
<a href="https://tildegit.org/tildeverse/tilde.chat/src/branch/master/wiki/pages/<?=$page?>.md">
<i class="fa fa-edit"></i> source
</a>

View File

@ -2,29 +2,27 @@
author: ~khuxkm
published: true
title: "badger bot"
description: Twitch Plays Pokemon badge system
description: Twitch Plays Pokémon badge system
category:
- main
---
# badger
The Twitch Plays Pokemon badge system, ported to tildeverse IRC!
The Twitch Plays Pokémon badge system, ported to tildeverse IRC!
## How it works
Every 20 to 50 messages in #meta, the person talking will recieve a random badge. These badges have a distribution like so:
Every 20 to 50 messages in #meta, the person talking will receive a random badge. These badges have a distribution like so:
|Badge Name |Chance of pull|
|-----------|--------------|
|Berrybadge |65.00% |
|Firebadge |15.00% |
|Rockbadge |10.00% |
|Waterbadge |5.00% |
|Shadybadge |2.00% |
|Musicbadge |1.90% |
|Sportsbadge|1.00% |
|Tildebadge |0.10% |
| Badge Name | Chance of pull |
|-------------|----------------|
| Berrybadge | 65.00% |
| Firebadge | 15.00% |
| Rockbadge | 10.00% |
| Waterbadge | 5.00% |
| Shadybadge | 2.00% |
| Musicbadge | 1.90% |
| Sportsbadge | 1.00% |
| Tildebadge | 0.10% |
You can transmute 3 or more badges. When you do this, it will create one, hopefully rarer badge and take the badges you put in away.
@ -50,4 +48,4 @@ Opts you out of the badge game entirely. You will not be able to participate aga
### `+optin`
Opts you back into the game, allowing you to participate again.
Opts you back into the game, allowing you to participate again.

View File

@ -7,7 +7,7 @@ category:
- main
---
***NOTE***: botamusique is back in business! after the files for it mysteriously disappeared, I reinstalled everything and it should be back in working condition!
***NOTE***: botamusique is back in business! after the files for it mysteriously disappeared, I reinstalled everything, and it should be back in working condition!
botamusique is our new mumble bot. (RIP MumbleDJ 2018-2020, you will be missed.) Here are some commands you can use:

View File

@ -1,17 +1,15 @@
---
author: ~cmccabe
published: true
title: cool irc bots
title: irc bots on tilde.chat
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.
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
@ -29,7 +27,7 @@ if your bot's code is not yet stable, keep it in the #bots channel and do testin
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).
all 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
@ -93,7 +91,7 @@ follow the example of sedbot when you add your bot in a PR to the wiki
- [source](https://tildegit.org/lickthecheese/circles)
* [badger](./badger)
- botmaster: [~khuxkm](https://khuxkm.tilde.team)
- short description: the Twitch Plays Pokemon badge system, ported to tildeverse IRC?
- short description: the Twitch Plays Pokémon badge system, ported to tildeverse IRC?
- list of functions:
- `+listbadges` - List the badges in your possession.
- `+transmute <badge> <badge> <badge> [badge...]` - Transmute 3 or more badges into one, hopefully rarer badge.

View File

@ -7,8 +7,6 @@ category:
- main
---
# services
tilde.chat uses [anope](http://anope.org) irc services to provide accounts
and channel management features.
@ -40,7 +38,7 @@ you can only register if you already have +o (chanops). this is automatically
granted when you are the first person to join a channel.
note that you need to be identified to NickServ for this to work. the channel
will be registered to your account and you will automatically be granted +q and +o.
will be registered to your account, and you will automatically be granted +q and +o.
## setting persistent modes in your own channels with chanserv

View File

@ -7,20 +7,18 @@ 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.
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 its 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.
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 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 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.
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 its 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 its rightful heir will know exactly who they are messing with.
Long live the king!
Long live the king!

View File

@ -1,14 +1,12 @@
---
author: ~ben
published: true
title: irc etiquette
title: irc etiquette guidelines
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
@ -20,25 +18,28 @@ 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?"
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.
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
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 tildeverse 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.
please be considerate of other channels when trying to stop someone engaging in obnoxious behavior. if that behavior involves personal attacks, threats, bigotry, etc or other things that would plausibly result in them being g-lined from the network, do not send them to other channels as this will just result in more people being affected by it. not all wealth should be shared.
## don't assume pronouns
if you know someone's pronouns, use them. try to default to they/them if you don't know.
- check with tildebot to see if the person in question has set pronouns: `/query tildebot pronouns <nick>`
- check with `/whois` to see if a user has included them in the realname field: `/whois <nick>`
- ask them!
## last but not least
@ -48,11 +49,11 @@ be considerate to your fellow tildizens, take [accountability](user_accountabili
# consequences
* first offenses will be handled with a kick from the channel with an explanation of the undesirable behavior. 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.
* 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.
if you have something that requires oper attention, please email opers at tilde dot chat.
# Shared Strike Policy
@ -62,7 +63,7 @@ Users' continuing problematic behavior that has been previously addressed will s
This means that:
* User warned about bad behavior in one chan
* User can be kicked in chan two when continuing behavior there
* User received a 1 hour ban in one chan
* User received a 1-hour ban in one chan
* User can earn an increased ban (say 2hr) in chan two when repeating said behavior there
* A user is permabanned (ex. harassment, continual arguing, persistent trolling, etc.)
* When continuing behavior in a second chan, they can be permabanned there also
@ -72,4 +73,4 @@ This means that:
The Moderators of participating channels (see list below) will have the discretion to utilize this Shared Strike Policy.
The intent of this policy is to ease the burden moderating known bad-actors/trolls/toxic users, as well as to simplify holding such individuals [accountable](user_accountability) for their behavior.
Share Strike Participating Channels include: #meta, #politics, and #team.
Share Strike Participating Channels include: #aussie, #club, #covid19, #helpdesk, #institute, #meta, #politics, #team, and #tilderadio.

View File

@ -7,8 +7,6 @@ category:
- main
---
# IRC Nicks (Or handles, or names)
Your *nick* in IRC is the name you go by, and how people get to know you, and how you get to know others. You can set it to most anything you like, with some exceptions for which characters to use.
## Registration
@ -25,13 +23,13 @@ You will get sent a confirmation email, which will have a code in it. You must t
## Logging in
Once connected to IRC, you can then login using the following:
Once connected to IRC, you can then log in using the following:
/msg nickserv identify MySuperAwesomePassword
## automatic signin with sasl and certfp
we support authenticating to services via sasl and certfp:
we support authenticating via sasl and certfp:
see the libera.chat [guide](https://libera.chat/guides/sasl) for your
specific client. the basic idea is that you will want to set your sasl username
@ -51,7 +49,7 @@ If you've forgotten your password, you can use the RESETPASS command to send you
/msg nickserv help resetpass
If you still know you password and just want to change it, you can use the SET command:
If you still know your password and just want to change it, you can use the SET command:
/msg nickserv help set password

View File

@ -1,14 +1,12 @@
---
author: ~ben
published: true
title: tilde.chat servers
title: tilde.chat server list
description: list of servers in the network
category:
- main
---
# server list
you can use irc.tilde.chat to get a random server.
there are also four geo-round-robins available:
@ -25,17 +23,15 @@ plaintext to localhost port 6667 from there.
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/) | |
| bsd.tilde.chat | germany | [bsd.tilde.team](https://bsd.tilde.team/) | |
| club.tilde.chat | quebec | [tilde.club](https://tilde.club/) | |
| cosmic.tilde.chat | london | [cosmic.voyage](https://cosmic.voyage/) | |
| ctrl-c.tilde.chat | new york | [ctrl-c.club](http://ctrl-c.club) | |
| hub.tilde.chat | quebec | [ben](https://tilde.team/~ben/) | services, [website](https://tilde.chat), and [mumble](mumble://tilde.chat) live here |
| institute.tilde.chat | germany | [tilde.institute](https://tilde.institute/) | not available on localhost currently |
| team.tilde.chat | quebec | [tilde.team](https://tilde.team/) | |
| texto-plano.tilde.chat | chile | [texto-plano.xyz](https://texto-plano.xyz/) | |
| 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 |
| server | location | hoster | notes |
|------------------------|-----------|---------------------------------------------|--------------------------------------------------------------------------------------|
| aussie.tilde.chat | australia | [aussies.space](https://aussies.space/) | |
| bsd.tilde.chat | germany | [bsd.tilde.team](https://bsd.tilde.team/) | |
| cosmic.tilde.chat | london | [cosmic.voyage](https://cosmic.voyage/) | |
| ctrl-c.tilde.chat | new york | [ctrl-c.club](http://ctrl-c.club) | |
| institute.tilde.chat | germany | [tilde.institute](https://tilde.institute/) | not available on localhost currently |
| newhub.tilde.chat | virginia | [ben](https://tilde.team/~ben/) | services, [website](https://tilde.chat), and [mumble](mumble://tilde.chat) live here |
| team.tilde.chat | quebec | [tilde.team](https://tilde.team/) | |
| texto-plano.tilde.chat | chile | [texto-plano.xyz](https://texto-plano.xyz/) | |
| town.tilde.chat | toronto | [tilde.town](https://tilde.town/) | only accessible from localhost on port 7766; no external connections |

View File

@ -1,14 +1,12 @@
---
author: ~demure
published: true
title: Self Accountability
descripion: A User Guide to help with Self Accountability
title: A User Guide to Self Accountability
description: A User Guide to help with Self Accountability
category:
- main
---
# A User Guide to Self Accountability
## Preface
> Everybody makes mistakes.
> Everybody has bad days.
@ -19,7 +17,7 @@ As part of a community it is key that we identify our mistakes and strive to not
Yes, this takes time, effort, and courage to:
* identity issues
* identify issues
* figure out changes
* implement changes
* take accountability
@ -58,18 +56,18 @@ There are a few key points related to Self Accountability. While cases will vary
5. Apologize for the issue
When we take Ownership of an issue by stating the above points, they don't necessarily need to be individual sentences.
ie: its fairly simple to acknowledge our involvement while identify what happened.
ie: it's fairly simple to acknowledge our involvement while identify what happened.
## Accepting Responsibility
Once we have taken time to reflect on what has happened, we need to tell our fellow community members.
Using the above [outline](#outline), make a statement and take Ownership of the issue.
If this issue is somewhat personal, it is quite appropriate to to have one-on-one discussion(s) with those impacted.
If this issue is somewhat personal, it is quite appropriate to have one-on-one discussion(s) with those impacted.
If the issue was public, do try to make a short statement publicly anyway, so that others are aware that the issue is being worked on.
### Small Stuff
Sometimes we can do Small Stuff. It's pretty quick an painless to say:
Sometimes we can do Small Stuff. It's pretty quick and painless to say:
"Oops, I'm sorry."

80
wiki/pages/weechat.md Normal file
View File

@ -0,0 +1,80 @@
---
author: ~alexlehm
published: true
title: getting started with weechat on a tilde machine
description: run weechat as a local irc client
category:
- main
---
If you want to run irc on your tilde account, you can use weechat
which is installed and requires minimal configuration.
## First connection
Start weechat on your linux shell and type the following commands:
/server add tilde irc.tilde.chat/6697 -ssl
/connect tilde
This will connect you to the irc network via a secure connection. The
username used is your linux account, this has to be unique, if someone
else registered your name already and is online you will be called
**username1** or similar, then you should choose another nickname. You
do that with
/nick newusername
(If you didn't choose a username that is unique in the tilde network,
you had kind of bad luck.)
## Register
You now can register your username using your tilde email address as
described here: [intro to nicks](nicks)
## Setting login credentials
After you have done that, you can set the username and password in the
weechat settings to automatically log in and authenticate
/set irc.server.tilde.sasl_username <username>
/set irc.server.tilde.sasl_password <password>
Or to store the password securely (which is preferred), you can use
secure settings like this
/secure passphrase <passphrase>
/secure set tilde_password <password>
/set irc.server.tilde.sasl_password "${sec.data.tilde_password}"
Then the client will ask you for the passphrase when starting.
Now disconnect and connect again to get your registered nickname
/quit
run **weechat** again and then connect with
/connect tilde
## What now
Now you can join any channel, e.g. **#helpdesk**
You can set various parameters, e.g. to set your real name displayed
in /whois you can use
/set irc.server.tilde.realname "My real name"
You can join multiple channels with /j #channel or start private
conversations with /msg nickname and navigate between the different
windows with Control-n and Control-p
To automatically connect to the tilde server on startup use
/set irc.server.tilde.autoconnect on
For more information about weechat, see the
[manual](https://weechat.org/files/doc/stable/weechat_user.en.html)