Skip to content

Commit f5292a0

Browse files
authored
add check for netlist (#53)
1 parent 3160e11 commit f5292a0

3 files changed

Lines changed: 172 additions & 118 deletions

File tree

_data/catlist.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ regional:
3737
small:
3838
- AfterNET
3939
- BSDNet
40+
- DesktopMasters
4041
- EsperNet
4142
- FEFnet
4243
- IRCNow
@@ -51,5 +52,3 @@ small:
5152
- irc-nerds
5253
- starlink-irc
5354
- tilde.chat
54-
- xworld
55-
- DesktopMasters

_data/netlist.yaml

Lines changed: 27 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
# vim:set ts=2 sw=2 et:
1+
# vim: set ts=2 sw=2 et:
2+
%YAML 1.2
3+
---
24
property:
35
lastchange: May 2025
46
groups:
@@ -17,8 +19,9 @@ emptynet:
1719
support_channels:
1820
information: >
1921
nix
22+
nix
2023
servers:
21-
- server
24+
- server
2225
webserverlist:
2326
webstatistic:
2427
category:
@@ -163,6 +166,14 @@ Undernet:
163166
commonplace on other networks. Channel service requires certain conditions
164167
before registering a channel. Policy and application form available from
165168
their web site. Support for its services is extensive.
169+
servers:
170+
- irc.undernet.org
171+
- chicago.il.us.undernet.org
172+
- bucharest.ro.eu.undernet.org
173+
- budapest.hu.eu.undernet.org
174+
- dallas.tx.us.undernet.org
175+
- losangeles.ca.us.undernet.org
176+
- miami.fl.us.undernet.org
166177
webserverlist: 'https://www.undernet.org/servers.php'
167178
category:
168179
- popular
@@ -244,6 +255,15 @@ QuakeNet:
244255
not. Anyway, here's a network full of (mainly European) addicts. It has
245256
grown from a subject-specific network into the largest IRC network in the
246257
world!
258+
servers:
259+
- adrift.sg.quakenet.org
260+
- atw.hu.quakenet.org
261+
- cymru.us.quakenet.org
262+
- euroserv.fr.quakenet.org
263+
- hostsailor.ro.quakenet.org
264+
- stockholm.se.quakenet.org
265+
- tngnet.nl.quakenet.org
266+
- underworld2.no.quakenet.org
247267
webserverlist: 'https://www.quakenet.org/servers'
248268
webstatistic: 'https://www.quakenet.org/statistics#tab-users-day'
249269
category:
@@ -418,6 +438,8 @@ StonerNET:
418438
Started November 1997
419439
servers:
420440
- irc.stonernet.org
441+
category:
442+
- small
421443
status: down
422444
ColdFront:
423445
comment:
@@ -438,98 +460,6 @@ ColdFront:
438460
category:
439461
- game
440462
status: down
441-
SciFi:
442-
comment: "2020-08-15 server ?"
443-
image:
444-
homepage: "http://www.scifi.com/chat/"
445-
webchat:
446-
slocation:
447-
services:
448-
support_channels:
449-
information: >
450-
The SciFi TV channel caters to science fiction and fantasy, this chat server hosts chats with stars from the shows.
451-
servers:
452-
- server
453-
webserverlist:
454-
webstatistic:
455-
category:
456-
- scifi
457-
status: down
458-
EqNET:
459-
comment:
460-
- "2020-08-15 server ?"
461-
- "https://web.archive.org/web/20170912041432/https://www.equestrianpages.com/category/chat/"
462-
image:
463-
homepage: "http://www.equestrianpages.com"
464-
webchat:
465-
slocation:
466-
services:
467-
support_channels:
468-
information: >
469-
All things equestrian (about horses, that is). Regular and special events. Main channel is #equestrian.
470-
servers:
471-
- server
472-
webserverlist:
473-
webstatistic:
474-
category:
475-
- misc
476-
status: down
477-
'I.I.G.S. IRC':
478-
comment:
479-
- "2020-08-15 server ?"
480-
- "https://web.archive.org/web/20060819153931/http://www.iigs.org/irc/index.htm"
481-
image:
482-
homepage: "http://www.iigs.org/irc/index.htm"
483-
webchat:
484-
slocation:
485-
services:
486-
support_channels:
487-
information: >
488-
Genealogists worldwide unite!
489-
servers:
490-
- server
491-
webserverlist:
492-
webstatistic:
493-
category:
494-
- misc
495-
status: down
496-
BDSMnet:
497-
comment:
498-
- "2020-08-15 irc?"
499-
image:
500-
homepage: "http://www.bondage.com/irc/servers.asp"
501-
webchat:
502-
slocation:
503-
services:
504-
support_channels:
505-
information: >
506-
Network for adults who are interested in discussions and play in all forms of sexuality. (No, it's not a porn trading post.)
507-
servers:
508-
- server
509-
webserverlist:
510-
webstatistic:
511-
category:
512-
- misc
513-
status: down
514-
StonerNET:
515-
comment:
516-
- "2020-08-15 server ?"
517-
- "https://web.archive.org/web/20180902150525/http://stonernet.org/"
518-
image:
519-
homepage: "http://stonernet.org/"
520-
webchat:
521-
slocation:
522-
services:
523-
support_channels:
524-
information: >
525-
"Our goal is to unite the stoners around the world in order to bring an end to the prohibition of cannabis."
526-
servers:
527-
- server
528-
webserverlist:
529-
webstatistic:
530-
category:
531-
- misc
532-
status: down
533463
'Kidlink IRC':
534464
comment:
535465
- "2020-08-15 server ?"
@@ -541,7 +471,8 @@ StonerNET:
541471
services:
542472
support_channels:
543473
information: >
544-
For kids up to age 15 and educators with 'classrooms' in various languages. Requires registration prior to using, chat is monitored.
474+
For kids up to age 15 and educators with 'classrooms' in various languages.
475+
Requires registration prior to using, chat is monitored.
545476
servers:
546477
- server
547478
webserverlist:
@@ -729,7 +660,7 @@ SurNet:
729660
slocation: Argentina
730661
services: Channel (X), Nick (Nickserv)
731662
support_channels:
732-
information: >
663+
information:
733664
servers:
734665
- server
735666
webserverlist:
@@ -2268,26 +2199,6 @@ AmigaNet:
22682199
status: down
22692200
check:
22702201
server:
2271-
Kidlink IRC:
2272-
image:
2273-
homepage: "http://www.kidlink.org/IRC/"
2274-
irchelp:
2275-
webchat:
2276-
slocation:
2277-
services:
2278-
support_channels:
2279-
information: >
2280-
Network for kids up to age 15 and educators with 'classrooms' in
2281-
various languages. Requires registration prior to using it.
2282-
servers:
2283-
- server
2284-
webserverlist:
2285-
webstatistic:
2286-
category:
2287-
- mytest
2288-
status: down
2289-
check:
2290-
server:
22912202
Stomped.com:
22922203
image:
22932204
homepage: "http://www.stomped.com/"

_scripts/t/netlist.t

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
#!/usr/bin/env perl
2+
#
3+
# check netlist.yaml and catlist.yaml
4+
#
5+
use strict;
6+
use Test;
7+
use CPAN::Meta::YAML;
8+
9+
require "./_scripts/t/global.inc";
10+
11+
BEGIN { plan tests=>8, todo=>[] }
12+
13+
# netlist read
14+
my $fn="./_data/netlist.yaml";
15+
my ( $ynet, $snet);
16+
do {
17+
local *STDERR;
18+
open STDERR, '>>', \$snet;
19+
eval {
20+
open my $fh, "<:utf8", $fn;
21+
my $yt = do { local $/; <$fh> };
22+
$ynet=CPAN::Meta::YAML->read_string($yt);
23+
close $fh;
24+
};
25+
print STDERR $@;
26+
};
27+
my $r = "\n# ".join("\n# ",split(/\n/, $snet))."\n";
28+
print STDERR $r if ($snet ne '');
29+
ok($ynet); # netlist yaml error
30+
ok($snet eq ''); # netlist yaml warnings
31+
32+
my $err='';
33+
my @onlyp = qw/
34+
image
35+
homepage
36+
irchelp
37+
webchat
38+
slocation
39+
services
40+
support_channels
41+
information
42+
servers
43+
webserverlist
44+
webstatistic
45+
category
46+
status
47+
check
48+
comment
49+
/;
50+
51+
my %onlyp;
52+
foreach my $p ( @onlyp ) {
53+
$onlyp{$p}=0;
54+
}
55+
foreach my $net ( keys %{$ynet->[0]} ) {
56+
next if ($net eq 'property');
57+
foreach my $k ( keys %{$ynet->[0]->{$net}} ) {
58+
if ( !exists( $onlyp{$k} )) {
59+
$err .= "# unknown property $k in $net\n";
60+
}
61+
}
62+
}
63+
print STDERR "\n$err" if ($err ne '');
64+
ok($err eq ''); # netlist only property
65+
66+
my $err='';
67+
my @minp = qw/
68+
information
69+
servers
70+
category
71+
status
72+
/;
73+
74+
foreach my $net ( keys %{$ynet->[0]} ) {
75+
next if ($net eq 'property');
76+
foreach my $k ( @minp ) {
77+
if ( !exists( $ynet->[0]->{$net}->{$k} )) {
78+
$err .= "# missing $k in $net\n";
79+
}
80+
}
81+
}
82+
print STDERR "\n$err" if ($err ne '');
83+
ok($err eq ''); # netlist min property
84+
85+
# catlist read
86+
my $fn="./_data/catlist.yaml";
87+
my ($ycat, $scat);
88+
do {
89+
local *STDERR;
90+
open STDERR, '>>', \$scat;
91+
eval {
92+
open my $fh, "<:utf8", $fn;
93+
my $yt = do { local $/; <$fh> };
94+
$ycat=CPAN::Meta::YAML->read_string($yt);
95+
close $fh;
96+
};
97+
print STDERR $@;
98+
};
99+
my $r = "\n# ".join("\n# ",split(/\n/, $scat))."\n";
100+
print STDERR $r if ($scat ne '');
101+
ok($ycat); # catlist yaml error
102+
ok($scat eq ''); # catlist yaml warnings
103+
104+
my %cat;
105+
my %ccat;
106+
foreach my $net ( keys %{$ynet->[0]} ) {
107+
next if ($net eq 'property');
108+
next if ($ynet->[0]->{$net}->{status} ne 'active');
109+
foreach my $ca ( @{$ynet->[0]->{$net}->{category}} ) {
110+
$cat{$net}->{$ca}=0;
111+
$ccat{$ca}->{$net}=0;
112+
}
113+
}
114+
115+
my $err='';
116+
foreach my $ca ( keys %{$ycat->[0]} ) {
117+
foreach my $net ( @{$ycat->[0]->{$ca}} ) {
118+
if( !exists( $cat{$net}->{$ca} ) ) {
119+
$err .= "# catlist too much $net in $ca\n";
120+
}
121+
}
122+
}
123+
print STDERR $err if ($err ne '');
124+
ok($err eq ''); # catlist too much
125+
126+
my $err='';
127+
foreach my $ca ( keys %ccat ) {
128+
if ( !exists $ycat->[0]->{$ca} ) {
129+
$err .= "# catlist missing category $ca\n";
130+
next;
131+
}
132+
my %n=();
133+
foreach my $net ( @{$ycat->[0]->{$ca}} ) {
134+
$n{$net}=0;
135+
}
136+
foreach my $net ( keys %{$ccat{$ca}} ) {
137+
if (!exists $n{$net}) {
138+
$err .= "# catlist missing $net in $ca\n";
139+
}
140+
}
141+
}
142+
print STDERR $err if ($err ne '');
143+
ok($err eq ''); # catlist missing
144+

0 commit comments

Comments
 (0)