Показать сообщение отдельно
  #11  
Старый 27.01.2022, 22:03
Nil A
Guest
 
Сообщений: n/a
По умолчанию Описание к эхам

Nil A написал(а) к Michael Dukelsky в Jan 22 20:35:30 по местному времени:

Нello, Michael!

Thursday January 27 2022 20:16, from Michael Dukelsky -> Nil A:

DO>> Как получить в вывод эху ru.cars.daewoo ?
MD> Ты попался. :)

У меня на ноде я решаю похожие задачи питоном.
1. Он умеет отправлять всем моим линкам %list через txt2pkt.
2. Далее он умеет парсить ответ от всех мне известных типов AreaFix, примерно вот так происходит ветвление
pНpt = re.compile(r'^--- hpt(?:/\S+)? (\S+) (\S+) areafix')
pJnode = re.compile(r'^--- jNode ver. (\S+)')
pFidogate = re.compile(r'^--- FIDOGATE (\S+)')
pSqafix = re.compile(r'^--- SqaFix (\S+)')
pPartoss = re.compile(r'^--- ParToss (\S+)')
pFmail = re.compile(r'From : FMail AreaMgr')
pAreafixService = re.compile(r'From : Areafix Service') # 2:5020/4441
Он также парсит подписан/неподписан, и может сравнить с моим конфигом - я использую для проверки когерентности.
Он также парсит все названия эх, если линк это предоставляет
3. Далее, я беру "кашерные" описания из файлов echo50.lst, подставляю префикс "2:50 Bone:" для них. Кстати, у меня есть функция, которая сравнивает пришедший по файлэхе echo50.lst с текущей подпиской и отправляет подписку на недостающие эхи.
Также беру кашерные echo5020.lst и echo5030.lst
4. Компилирую свой список эх - приоритет описания в echo50.lst/echo5020.lst/echo5030.lst, далее если кто-то из линков добавил описание, но только если это не comment in ('Description missing', 'Эха как эха...', 'Без описания', '<none>', 'Unknown', '?')
Если всё равно ни каких описаний не осталось, то компилирую из префикса и постфикса, вот пример:

prefix2Addr = (
('10.', '2:5034/10'),
('101.', '2:5020/101'),
('1042.', '2:5020/1042'),
('1048.', '2:5030/1048'),
('1081.', '2:5030/1081'),
('1100.', '2:461/1100'),
('115.', '2:5030/115'),
('1641.', '2:5020/1641'),
('2.5083.', '2:5083'),
('29.', '2:5021/29'),
('400.', '2:5020/400'),
('4441.', '2:5020/4441'),
('5015-255.', '2:5015/255'),
('5020-723.', '2:5020/723'),
('5030-1474.', '2:5030/1474'),
('5030-722.', '2:5030/722'),
('5030.230.', '2:5030/230'),
('5030.87.', '2:5030/87'),
('53.', '2:5053/58'),
('54.', '2:5053/54'),
('58.', '2:5053/58'),
('59.', '2:463/59'),
('6666.', '2:463/6666'),
('68.', '2:463/68'),
('715.', '2:5020/715'),
('888.', '2:467/888'),
('altyn.', '2:5020/570'),
('angarsk.', '2:6070'),
('bel.', '2:45'),
('brest.', '2:454'),
('bryansk.', '2:6001'),
('bukovina.', '2:4626'),
('cherkassy.', '2:4635'),
('chernigov.', '2:4634'),
('concord', '2:5053/51'),
('concord.', '2:5053/51'),
('crimea.', '2:460'),
('dn.', '2:464'),
('dnz.', '2:4646'),
('donbass.', '2:4647'),
('edgecity.', '2:5030/115'),
('edgecity.ii.', '2:5030/1115'),
('esp.', '2:343/107'),
('gremlin.', '2:5020/545'),
('grumbler.', '2:5080/102'),
('hobbit.', '2:5023/24'),
('hole.', '2:5010/352'),
('houston.', '2:4624'),
('ip.', '2:466/50'),
('kazan.', '2:5049'),
('kharkov.', '2:461'),
('kiev.', '2:463'),
('klg.', '2:5023/24'),
('komi.', '2:5003'),
('kos.', '2:5034'),
('lorapvt.', '2:460/58'),
('middle.range.rockets', '2:5053'),
('mo.', '2:5020'),
('moldova.', '2:469'),
('mu.', '2:5080'),
('mun.', '2:5031'),
('nikolaev.', '2:466'),
('nino.', '2:5015'),
('nodex.', '2:5020/848'),
('novgorod.', '2:5032'),
('nozdr.', '2:5020/2613'),
('nsk.', '2:5000'),
('odessa.', '2:467'),
('pavlograd.', '2:4647'),
('pclovers.', '2:5059/38'),
('perm.', '2:5054'),
('pskov.', '2:5033'),
('pushkin.', '2:5020/2140'),
('pvt.2.5083.21.', '2:5083/21'),
('pvt.dionizov.', '2:463/1104'),
('r46.', '2:46'),
('r46fe.', '2:46 fileecho'),
('rnd.', '2:5061'),
('rndfido.', '2:5061'),
('roo.', '2:5020/1042'),
('rss.', '2:5020/545'),
('simbirsk.', '2:5051'),
('solovey.', '2:5030/2104'),
('spb.', '2:5030'),
('tdh.', '2:5031/71'),
('tg.', 'Telegram'),
('titanic.', '2:5020/830'),
('tsk.', '2:5005'),
('tula.', '2:5022'),
('tver.', '2:5021'),
('ukhta.', '2:5097'),
('vladimir.', '2:5024'),
('vorkuta.', '2:5003'),
('wit.', '2:5064/54'),
('z.tavsar.', '2:5053/55'),
('zaraza.', '2:5030/2906'),
('zc.', '2:4641'),
)

postfix2Comment = (
('.announce', 'Анонсы'),
('.crisis', 'Сообщения о кpизисах'),
('.echo', 'Локальная эха'),
('.fileecho', 'Файэха'),
('.files', 'Файлы'),
('.forwards', 'Форварды'),
('.humor', 'Юмор'),
('.info', 'Информация'),
('.link', 'Информация для линков'),
('.links', 'Линки'),
('.local', 'Локалка'),
('.official', 'Официоз'),
('.pvt', 'Частная'),
('.robot', 'Робот'),
('.robots', 'Роботы'),
('.stat', 'Статистика'),
('.statistic', 'Статистика'),
('.statistics', 'Статистика'),
('.stats', 'Статистика'),
('.sysop', 'Сисопская эха'),
('.sysop.club', 'Неформальное общение сисопов'),
('.sysop.talks', 'Неформальное общение сисопов'),
('.test', 'Для тестов'),
('.talks', 'Разговоры'),
('.tests', 'Для тестов'),
('sysop.crisis', 'Сообщения о кpизисах'),
)


Best Regards, Nil
--- GoldED+/LNX 1.1.5
Ответить с цитированием