Боти Telegram барои интихоби шахсии мақолаҳо аз Habr

Барои саволҳо ба монанди "чаро?" мақолаи кӯҳна вуҷуд дорад - Natural Geektimes - тоза кардани фазо.

Мақолаҳо зиёданд, бо сабабҳои субъективӣ баъзеи онҳо ба ман маъқул нестанд ва баъзеҳо, баръакс, гузаштан афсӯс аст. Ман мехоҳам ин равандро оптимизатсия кунам ва вақтро сарфа кунам.

Мақолаи боло равиши скрипт дар браузерро пешниҳод кард, аммо ба ман он аслан маъқул набуд (гарчанде ки ман онро қаблан истифода карда будам) бо сабабҳои зерин:

  • Барои браузерҳои гуногун дар компютер/телефон, шумо бояд онро дубора танзим кунед, агар имкон бошад.
  • Филтри қатъӣ аз ҷониби муаллифон на ҳамеша қулай аст.
  • Мушкилот бо муаллифоне, ки мақолаҳояшонро аз даст додан намехоҳед, ҳатто агар онҳо дар як сол як маротиба нашр шаванд ҳам, ҳал нашудааст.

Филтркунӣ дар сайт дар асоси рейтинги мақолаҳо на ҳамеша қулай аст, зеро мақолаҳои хеле махсус, сарфи назар аз арзиши онҳо, метавонанд рейтинги хеле хоксорона гиранд.

Дар аввал, ман мехостам як канали RSS (ё ҳатто якчанд) тавлид кунам ва дар он ҷо танҳо чизҳои ҷолибро тарк кунам. Аммо дар ниҳоят маълум шуд, ки хондани RSS чандон қулай нест: дар ҳар сурат барои шарҳ додан/ овоз додан ба мақола/ илова кардани он ба дӯстдоштаи худ, шумо бояд тавассути браузер гузаред. Барои ҳамин ман боти телеграмма навиштам, ки дар паёми шахсӣ ба ман мақолаҳои ҷолиб мефиристад. Худи Telegram аз онҳо пешнамоишҳои зебо месозад, ки дар якҷоягӣ бо маълумот дар бораи муаллиф/рейтинг/намоишҳо хеле иттилоотӣ ба назар мерасанд.

Боти Telegram барои интихоби шахсии мақолаҳо аз Habr

Дар зери буриш тафсилот ба монанди хусусиятҳои кор, раванди навиштан ва ҳалли техникӣ мавҷуданд.

Дар бораи бот мухтасар

Анбор: https://github.com/Kright/habrahabr_reader

Бот дар телеграм: https://t.me/HabraFilterBot

Истифодабаранда барои барчаспҳо ва муаллифон рейтинги иловагӣ мегузорад. Пас аз он, ба мақолаҳо филтр татбиқ карда мешавад - рейтинги мақола дар Habré, рейтинги корбари муаллиф ва миёнаи рейтинги корбарон аз рӯи тег ҷамъ карда мешаванд. Агар маблаѓ аз меъёри муайянкардаи корбар зиёд бошад, мақола аз филтр мегузарад.

Ҳадафи канори навиштани бот ин ба даст овардани фароғат ва таҷриба буд. Илова бар ин, ман мунтазам ба худ хотиррасон мекардам, ки Ман Google нестам, ва аз ин рӯ, бисёр корҳо то ҳадди имкон содда ва ҳатто ибтидоӣ иҷро карда мешаванд. Аммо ин ба раванди навиштани бот монеъ нашуд, ки се моҳ тӯл кашад.

Дар берун тобистон буд

Июл ба охир мерасид ва ман тасмим гирифтам, ки бот нависам. Ва на танҳо, балки бо як дӯсте, ки скаларо азхуд мекард ва мехост дар он чизе нависад. Оғоз умедбахш ба назар мерасид - кодро як даста бурида хоҳад кард, вазифа осон ба назар мерасид ва ман фикр мекардам, ки пас аз як ду ҳафта ё як моҳ бот омода мешавад.

Сарфи назар аз он, ки ман худам дар тӯли чанд соли охир гоҳ-гоҳ дар рӯи санг код менависам, одатан ҳеҷ кас ин кодро намебинад ё ба он нигоҳ намекунад: лоиҳаҳои ҳайвонот, санҷиши баъзе идеяҳо, коркарди пешакии маълумот, азхудкунии баъзе мафҳумҳо аз FP. Ман воқеан ба он шавқ доштам, ки коди навиштан дар даста чӣ гуна аст, зеро кодро дар санг метавон бо роҳҳои гуногун навишт.

Чи метавонист рафт ҳамин тавр? Бо вуҷуди ин, биёед дар кор шитоб накунем.
Ҳама чизеро, ки рӯй медиҳад, метавон бо истифода аз таърихи содирот пайгирӣ кард.

Як шинос 27-уми июл як репозиторий таъсис дод, вале дигар коре накард ва ман ба навиштани код шурӯъ кардам.

30 июл

Мухтасар: Ман таҳлили канали rss-и Ҳабрро навиштам.

  • com.github.pureconfig барои хондани конфигуратсияҳои typesafe мустақиман дар синфҳои парванда (ин хеле қулай буд)
  • scala-xml барои хондани xml: Азбаски дар аввал ман мехостам татбиқи худро барои rss feed нависам, ва rss feed дар формати xml аст, ман ин китобхонаро барои таҳлил истифода кардам. Дар асл, таҳлили RSS низ пайдо шуд.
  • scalatest барои санҷишҳо. Ҳатто барои лоиҳаҳои хурд, навиштани санҷишҳо вақтро сарфа мекунад - масалан, ҳангоми ислоҳи таҳлили xml, зеркашӣ кардани он ба файл, навиштани санҷишҳо ва ислоҳи хатогиҳо хеле осонтар аст. Вақте ки хатогӣ баъдтар ҳангоми таҳлили html-и аҷиб бо аломатҳои utf-8 беэътибор пайдо шуд, он ба файл гузоштан ва илова кардани санҷиш қулайтар шуд.
  • актёрони Акка. Объективона, онҳо умуман лозим набуданд, аммо лоиҳа барои масхара навишта шудааст, ман мехостам онҳоро санҷам. Дар натиҷа, ман омодаам бигӯям, ки ба ман маъқул шуд. Идеяи OOP-ро аз дигар тараф дидан мумкин аст - актёрҳое ҳастанд, ки мубодилаи паёмҳо доранд. Чизи ҷолибтар он аст, ки шумо метавонед (ва бояд) кодро тавре нависед, ки паём нарасад ё коркард нашавад (умуман, вақте ки ҳисоб дар як компютер кор мекунад, паёмҳо набояд гум шаванд). Дар аввал ман сарамро харошида будам ва дар код партовҳо буд, ки актёрҳо ба ҳамдигар обуна буданд, аммо дар ниҳоят ман тавонистам як меъмории хеле содда ва шево пайдо кунам. Рамзи дохили ҳар як актёрро як ришта ҳисоб кардан мумкин аст; вақте ки актёр ба садама дучор мешавад, acca онро аз нав оғоз мекунад - натиҷа системаи ба хатогиҳо тобовар аст.

9 Август

Ман ба лоиҳа илова кардам scala-scrapper барои таҳлили саҳифаҳои html аз Habr (барои берун кардани маълумот ба монанди рейтинги мақола, шумораи хатчӯбҳо ва ғайра).

Ва Гурбахо. Онҳое, ки дар санг.

Боти Telegram барои интихоби шахсии мақолаҳо аз Habr

Пас аз он ман китоберо дар бораи пойгоҳи додаҳои тақсимшуда хондам, ба ман ғояи CRDT (навъи маълумотҳои такрории бидуни низоъ, https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type, хабр), аз ин рӯ ман як синфи навъи нимгурӯҳи коммутатсионӣ барои маълумот дар бораи мақола дар Habré ҷойгир кардам.

Дар асл, идея хеле содда аст - мо ҳисобкунакҳо дорем, ки ба таври якрангӣ тағир меёбанд. Шумораи аксияҳо тадриҷан меафзояд, инчунин шумораи плюсҳо (инчунин шумораи камҳо). Агар ман ду версияи маълумот дар бораи мақола дошта бошам, пас ман метавонам онҳоро "ба як муттаҳид созам" - ҳолати ҳисобкунак, ки калонтар аст, мувофиқтар ҳисобида мешавад.

Нимгурӯҳ маънои онро дорад, ки ду объекти дорои маълумот дар бораи мақола метавонад ба як якҷоя карда шавад. Коммутативӣ маънои онро дорад, ки шумо метавонед ҳам A + B ва B + A якҷоя кунед, натиҷа аз фармоиш вобаста нест ва дар ниҳоят версияи навтарин боқӣ мемонад. Воқеан, дар ин ҷо ассотсиатсия низ вуҷуд дорад.

Масалан, тавре ки ба нақша гирифта шуда буд, rss пас аз таҳлил маълумоти каме заифшуда дар бораи мақоларо пешниҳод кард - бидуни ченакҳо ба монанди шумораи диданҳо. Пас аз он як актёри махсус дар бораи мақолаҳо маълумот гирифт ва ба саҳифаҳои html давида, онро навсозӣ ва бо версияи кӯҳна якҷоя кард.

Умуман, чунон ки дар акка, ба ин лозим набуд, шумо метавонед танҳо навсозӣ кардани мақоларо захира кунед ва бе ягон якҷоякунӣ навтар гиред, аммо роҳи саёҳат маро пеш бурд.

12 Август

Ман худро озодтар ҳис мекардам ва танҳо барои фароғат ҳар як чатро актёри алоҳида кардам. Аз ҷиҳати назариявӣ, як худи актёр тақрибан 300 байт вазн дорад ва онҳоро бо миллионҳо эҷод кардан мумкин аст, бинобар ин, ин як муносибати комилан муқаррарӣ аст. Ба назари ман, ҳалли хеле ҷолиб буд:

Як актёр пули байни сервери телеграмма ва системаи паём дар Акка буд. Вай танҳо паёмҳоро гирифт ва онҳоро ба актёри чатҳои дилхоҳ фиристод. Актёри чат метавонад дар ҷавоб чизе баргардонад - ва он ба телеграмма бармегардад. Он чизе, ки хеле қулай буд, ин аст, ки ин актёр то ҳадди имкон содда баромад ва танҳо мантиқи посух додан ба паёмҳоро дар бар гирифт. Воқеан, ба ҳар чат маълумот дар бораи мақолаҳои нав ворид мешуд, аммо боз ман дар ин ягон мушкилот намебинам.

Умуман, бот аллакай кор мекард, ба паёмҳо посух медод, рӯйхати мақолаҳои ба корбар фиристодашударо нигоҳ медошт ва ман аллакай фикр мекардам, ки бот қариб омода аст. Ман оҳиста хусусиятҳои каме илова кардам, ба монанди муқаррар кардани номҳои муаллиф ва барчаспҳо (иваз кардани “sd f” бо “s_d_f”).

Факат як чиз монда буд хурд аммо — давлат дар ягон чо начот дода шуд.

Ҳама чиз нодуруст рафт

Шумо шояд пай бурда бошед, ки ман ботро асосан танҳо навиштаам. Ҳамин тариқ, иштирокчии дуюм дар таҳия иштирок кард ва дар код тағйироти зерин пайдо шуданд:

  • MongoDB барои нигоҳ доштани ҳолат пайдо шуд. Ҳамзамон, гузоришҳо дар лоиҳа шикаста шуданд, зеро бо баъзе сабабҳо Monga онҳоро спам кардан гирифт ва баъзе одамон онҳоро дар саросари ҷаҳон хомӯш карданд.
  • Ҳунарпешаи пул дар Telegram ба таври шинохтанашаванда табдил ёфт ва худаш ба таҳлили паёмҳо шурӯъ кард.
  • Актёрҳо барои чатҳо бераҳмона бурида шуданд ва ба ҷои онҳо бо як актёр иваз карда шуданд, ки ҳама маълумотро дар бораи ҳама чатҳо якбора пинҳон мекард. Барои ҳар атсазанӣ, ин актёр ба мушкилот дучор мешуд. Хуб, бале, ба монанди ҳангоми нав кардани маълумот дар бораи мақола, фиристодани он ба ҳама фаъолони чат мушкил аст (мо мисли Google ҳастем, миллионҳо корбарон дар чат барои ҳар як миллион мақола интизоранд), аммо ҳар дафъае, ки чат нав карда мешавад, ба Монга рафтан муқаррарӣ аст. Тавре ки хеле дертар фаҳмидам, мантиқи кори чатҳо низ комилан бурида шуд ва ба ҷои он чизе, ки кор намекард, пайдо шуд.
  • Аз синфҳои типӣ осоре боқӣ намондааст.
  • Дар актёрхо бо обуна ба хамдигар мантики носолим пайдо шуда, боиси вазъияти нажодй мегардад.
  • Сохторҳои маълумот бо майдонҳои намуд Option[Int] ба Int бо арзишҳои пешфарз ба монанди -1 табдил ёфт. Баъдтар ман фаҳмидам, ки mongoDB json-ро нигоҳ медорад ва дар он ҷо нигоҳ доштани он ҳеҷ бадӣ надорад Option хуб, ё ҳадди аққал -1-ро ҳамчун Ҳеч нест, аммо он вақт ман инро намедонистам ва калимаи худро барои он қабул кардам, ки "ин тавр бояд бошад." Ман ин рамзро нанавиштам ва ман дар айни замон дар иваз кардани он ташвиш надорам.
  • Ман фаҳмидам, ки суроғаи IP-и ман одатан тағир меёбад ва ҳар дафъа ман маҷбур шудам, ки онро ба рӯйхати сафеди Mongo илова кунам. Ман ботро ба таври маҳаллӣ оғоз кардам, Монга дар ҷое дар серверҳои Monga ҳамчун ширкат буд.
  • Ногаҳон, муқаррар кардани тегҳо ва форматкунии паёмҳо барои телеграммаҳо аз байн рафтанд. (Ҳм, чаро ин тавр мешавад?)
  • Ба ман писанд омад, ки ҳолати бот дар пойгоҳи додаҳои беруна нигоҳ дошта мешавад ва вақте ки бозоғозӣ он кор мекунад, гӯё ҳеҷ чиз рӯй надода бошад. Бо вуҷуди ин, ин ягона плюс буд.

Шахси дуюм шитоб намекард ва ҳамаи ин тағйирот дар як тӯдаи калон аллакай дар аввали моҳи сентябр пайдо шуданд. Ман микьёси харобихои ба амаломадаро дархол нафахмидам ва ба кори база сарфахм рафтам, зеро... Ман ҳеҷ гоҳ бо онҳо кор накардаам. Танҳо баъдтар ман фаҳмидам, ки чӣ қадар рамзи корӣ бурида шудааст ва ба ҷои он чӣ қадар хатоҳо илова карда шудаанд.

Сентябр

Дар аввал фикр мекардам, ки Монгаро азхуд кардан ва ин корро хуб кардан фоиданок аст. Баъд ман оҳиста-оҳиста фаҳмидам, ки ташкили муошират бо базаи маълумот инчунин як санъатест, ки дар он шумо метавонед мусобиқаҳои зиёде кунед ва танҳо хато кунед. Масалан, агар корбар ду паёми монанди /subscribe - ва дар ҷавоб ба ҳар як мо дар ҷадвал сабт эҷод мекунем, зеро дар вақти коркарди ин паёмҳо корбар обуна нашудааст. Ман гумон дорам, ки муошират бо Монга дар шакли ҳозирааш ба таври беҳтарин навишта нашудааст. Масалан, танзимоти корбар дар лаҳзаи ворид шуданаш сохта шуда буданд. Агар ӯ кӯшиш кунад, ки онҳоро пеш аз факти обуна иваз кунад ... бот ҳеҷ чиз ҷавоб намедод, зеро код дар актёр ба базаи танзимот даромад, онро наёфт ва шикаст хӯрд. Вақте пурсиданд, ки чаро танзимотро мувофиқи зарурат эҷод накунед, ман фаҳмидам, ки агар корбар обуна нашуда бошад, тағир додани онҳо лозим нест... Системаи филтркунии паёмҳо ба таври ошкоро сохта шудааст ва ҳатто пас аз азназаргузаронии код ман метавонам намефаҳмам, ки оё он дар аввал чунин пешбинӣ шуда буд ё дар он ҷо хатогӣ ҳаст.

Рӯйхати мақолаҳое, ки ба чат пешниҳод карда шудаанд, вуҷуд надошт, ба ҷои ин, тавсия дода шуд, ки ман онҳоро худам нависам. Ин маро ба тааҷҷуб овард - дар маҷмӯъ, ман мухолифи кашола кардани ҳама гуна чизҳо ба лоиҳа набудам, аммо барои касе, ки ин чизҳоро овардааст ва ба кор андохтааст, мантиқӣ мебуд. Аммо не, иштирокчии дуюм ба назар чунин менамуд, ки аз ҳама чиз даст кашид, аммо гуфт, ки рӯйхат дар дохили чат гӯё як роҳи ҳалли бад аст ва бояд бо рӯйдодҳое, ба мисли "мақолаи y ба корбари x фиристода шуд" ишора кард. Сипас, агар корбар дархости ирсоли мақолаҳои навро дошта бошад, ба базаи маълумот дархост фиристодан лозим буд, ки рӯйдодҳои марбут ба корбарро аз рӯйдодҳо интихоб мекунад, инчунин рӯйхати мақолаҳои навро мегирад, онҳоро филтр мекунад ва ба корбар ирсол мекунад. ва рӯйдодҳоро дар бораи ин ба пойгоҳи додаҳо партоед.

Иштирокчии дуюмро ба ҷое ба суи абстраксия бурданд, вақте ки бот на танҳо аз Ҳабр мақолаҳо мегирад ва на танҳо ба телеграмма фиристода мешавад.

Ман як навъ чорабиниҳоро дар шакли аломати алоҳида барои нимаи дуюми моҳи сентябр амалӣ кардам. Ин оптималӣ нест, аммо ҳадди аққал бот ба кор шурӯъ кард ва дубора ба ман мақолаҳо фиристод ва ман оҳиста фаҳмидам, ки дар код чӣ рӯй дода истодааст.

Акнун шумо метавонед ба аввал баргардед ва дар хотир доред, ки репозиторий дар ибтидо аз ҷониби ман офарида нашудааст. Чӣ метавонист ин тавр гашт? Дархости ман рад карда шуд. Маълум шуд, ки ман рамзи сурх доштам, ки ман намедонистам, ки чӣ гуна дар як гурӯҳ кор кунам ва ман маҷбур будам, ки хатогиҳоро дар хатти ҷории татбиқ ислоҳ кунам ва онро ба ҳолати қобили истифода такмил надиҳам.

Ман хафа шудам ва ба таърихи содирот ва миқдори рамзи навишташуда назар кардам. Ман ба лаҳзаҳое назар кардам, ки дар аввал хуб навишта шуда буданд ва баъд шикастаанд...

Фик*р он

Мақоларо ба ёд овардам Шумо Google нестед.

Фикр кардам, ки аслан идеяе бе амалй шудан ба касе лозим нест. Ман фикр кардам, ки ман мехоҳам як боти корӣ дошта бошам, ки дар як нусха дар як компютер ҳамчун барномаи оддии java кор мекунад. Ман медонам, ки боти ман дар тӯли моҳҳо бидуни бозоғозӣ кор хоҳад кард, зеро ман дар гузашта чунин ботҳоро навишта будам. Агар ногаҳон афтад ва ба корбар мақолаи дигар нафиристад, осмон ба замин намеафтад ва ҳеҷ чизи фалокатоваре рух намедиҳад.

Чаро ба ман Docker, mongoDB ва дигар культи боркаши нармафзори "ҷиддӣ" лозим аст, агар код кор накунад ё каҷ кор кунад?

Ман лоиҳаро ба кор бурдам ва ҳама чизро тавре ки мехостам, иҷро кардам.

Боти Telegram барои интихоби шахсии мақолаҳо аз Habr

Тақрибан дар ҳамон вақт ман ҷои корро иваз кардам ва вақти холӣ хеле кам шуд. Саҳар рост дар қатора бедор шудам, бегоҳ дер баргаштам ва дигар чизе кардан намехостам. Ман муддате коре накардам, баъд хоҳиши анҷом додани бот маро фаро гирифт ва ман ҳангоми саҳар ба кор рафтанам оҳиста-оҳиста кодро аз нав навиштан шурӯъ кардам. Ман намегӯям, ки ин самаранок буд: нишастан дар қатораи ҷунбиш бо ноутбук дар зонуи худ ва дидани пур шудани стек аз телефони худ он қадар қулай нест. Бо вуҷуди ин, вақти сарфшуда барои навиштани код комилан нодида гирифт ва лоиҳа оҳиста-оҳиста ба ҳолати корӣ ҳаракат кард.

Дар ҷое дар паси ақли ман як кирми шубҳа пайдо шуд, ки мехоҳад mongoDB-ро истифода барад, аммо ман фикр мекардам, ки ба ғайр аз бартариҳои нигаҳдории "эътимод"-и давлатӣ, камбудиҳои назаррас вуҷуд доранд:

  • Пойгоҳи додаҳо боз як нуқтаи ноком мегардад.
  • Рамз мураккабтар шуда истодааст ва барои навиштани он ба ман вақти зиёд лозим мешавад.
  • Рамз суст ва бесамар мешавад; ба ҷои тағир додани объект дар хотира, тағиротҳо ба пойгоҳи додаҳо фиристода мешаванд ва дар ҳолати зарурӣ бозпас гирифта мешаванд.
  • Дар љадвали алоњида намуди нигоњдории њодисањо мањдудиятњо мављуданд, ки бо хусусиятњои базаи маълумотњо алоќаманданд.
  • Версияи озмоишии Monga дорои баъзе маҳдудиятҳо мебошад ва агар шумо ба онҳо дучор шавед, шумо бояд Monga-ро дар чизе оғоз ва танзим кунед.

Ман монгаро буридам, ҳоло ҳолати бот танҳо дар хотираи барнома нигоҳ дошта мешавад ва гоҳ-гоҳ дар файл дар шакли json захира карда мешавад. Шояд дар шарҳҳо онҳо бинависанд, ки ман хато мекунам, дар ин ҷо базаи маълумот бояд истифода шавад ва ғайра. Аммо ин лоиҳаи ман аст, равиш бо файл то ҳадди имкон содда аст ва он ба таври шаффоф кор мекунад.

Қиматҳои ҷодугарӣ ба мисли -1 хориҷ карда, арзишҳои муқаррариро баргардонданд Option, захираи иловагии ҷадвали ҳаш бо мақолаҳои фиристодашуда ба объект бо маълумоти чат. Ҳазфи маълумот дар бораи мақолаҳои аз панҷ рӯз калонтар иловашуда, то ҳама чизро нигоҳ надоред. Ман қайдгириро ба ҳолати корӣ овардам - ​​гузоришҳо ҳам ба файл ва ҳам ба консол ба миқдори мувофиқ навишта мешаванд. Якчанд фармонҳои администратор илова карда шуданд, ба монанди нигоҳдории ҳолат ё гирифтани омор, ба монанди шумораи корбарон ва мақолаҳо.

Як қатор чизҳои хурдро ислоҳ карданд: масалан, барои мақолаҳо ҳоло шумораи диданҳо, лайкҳо, нописандиҳо ва шарҳҳо дар вақти гузаштан аз филтри корбар нишон дода мешаванд. Умуман, тааҷҷубовар аст, ки чӣ қадар чизҳои хурдро ислоҳ кардан лозим буд. Рӯйхат гирифтам, дар он ҷо ҳама «ғайриқонунӣ»-ро қайд намуда, ба қадри имкон ислоҳ кардам.

Масалан, ман қобилияти насб кардани ҳама танзимотро бевосита дар як паём илова кардам:

/subscribe
/rating +20
/author a -30
/author s -20
/author p +9000
/tag scala 20
/tag akka 50

Ва дастаи дигар /settings онҳоро маҳз дар ин шакл намоиш медиҳад, шумо метавонед матнро аз он гирифта, тамоми танзимотро ба дӯстатон фиристед.
Чунин ба назар мерасад, ки як чизи хурд аст, аммо даҳҳо нозукиҳои шабеҳ мавҷуданд.

Филтркунии мақолаҳо дар шакли модели оддии хаттӣ амалӣ карда мешавад - корбар метавонад рейтинги иловагӣ барои муаллифон ва тегҳо ва инчунин арзиши ҳадди аксарро муқаррар кунад. Агар ҷамъи рейтинги муаллиф, рейтинги миёна барои тегҳо ва рейтинги воқеии мақола аз арзиши ҳадди аксар зиёд бошад, мақола ба корбар нишон дода мешавад. Шумо метавонед аз бот мақолаҳоро бо фармони /new дархост кунед ё ба бот обуна шавед ва он дар ҳар вақти рӯз мақолаҳоро дар паёми шахсӣ мефиристад.

Умуман, ман дар бораи ҳар як мақола фикре доштам, ки хусусиятҳои бештарро (марказҳо, шумораи шарҳҳо, хатчӯбҳо, динамикаи тағирёбии рейтинг, миқдори матн, тасвирҳо ва кодҳо дар мақола, калимаҳои калидӣ) берун кашад ва ба корбар хуб нишон диҳад / хуб нест, зери ҳар як мақола овоз диҳед ва барои ҳар як корбар намуна омӯзед, аммо ман хеле танбал будам.

Илова бар ин, мантиқи кор он қадар равшан нахоҳад буд. Ҳоло ман метавонам ба таври дастӣ рейтинги +9000-ро барои PatentZero муқаррар кунам ва бо рейтинги ҳадди ақали +20 ба ман кафолат дода мешавад, ки ҳамаи мақолаҳои ӯро қабул кунам (агар, албатта, ман барои баъзе тегҳо -100500 муқаррар кардаам).

Меъмории ниҳоӣ хеле оддӣ буд:

  1. Актере, ки ҳолати ҳама чатҳо ва мақолаҳоро нигоҳ медорад. Он ҳолати худро аз файли диск бор мекунад ва ҳар дафъа онро ба файли нав нигоҳ медорад.
  2. Актере, ки гоҳ-гоҳ ба канали RSS ворид мешавад, аз мақолаҳои нав огоҳ мешавад, ба истинодҳо назар мекунад, таҳлил мекунад ва ин мақолаҳоро ба аввалин актёр мефиристад. Гайр аз ин, вай баъзан руйхати маколахоро аз актёри якум талаб мекунад, онхоеро, ки аз се руз зиёд нестанд, вале муддати дароз нав карда нашудаанд, интихоб карда, онхоро нав мекунад.
  3. Актёре, ки бо телеграмма муошират мекунад. Ман то ҳол таҳлили паёмро пурра дар ин ҷо овардам. Бо роҳи дӯстона, ман мехоҳам онро ба ду тақсим кунам - то яке паёмҳои воридшударо таҳлил кунад ва дуввум бо мушкилоти интиқол, ба монанди дубора фиристодани паёмҳои ирсолнашуда. Ҳоло ирсоли дубора вуҷуд надорад ва паёме, ки бо сабаби хатогӣ нарасидааст, танҳо гум мешавад (агар он дар гузоришҳо қайд карда нашавад), аммо то ҳол ин ягон мушкилотро ба вуҷуд наовардааст. Шояд мушкилиҳо ба миён оянд, агар як гурӯҳи одамон ба бот обуна шаванд ва ман ба маҳдудияти фиристодани паёмҳо расидам).

Он чизе ки ба ман писанд омад, ин аст, ки ба шарофати акка, афтидаи актёрҳои 2 ва 3 умуман ба иҷрои бот таъсир намерасонад. Шояд баъзе мақолаҳо сари вақт нав карда намешаванд ё баъзе паёмҳо ба телеграмма намерасанд, аммо аккаунт актёрро аз нав оғоз мекунад ва ҳама корашро идома медиҳад. Ман маълумотеро, ки мақола ба корбар нишон дода мешавад, танҳо вақте нигоҳ медорам, ки актёри телеграмма ҷавоб медиҳад, ки паёмро бомуваффақият расонидааст. Бадтарин чизе, ки ба ман таҳдид мекунад, ин фиристодани паём чанд маротиба аст (агар он расонида шавад, аммо тасдиқ ягон навъ гум шудааст). Аслан, агар актёри аввал давлатро дар дохили худ нигоҳ намедошт, балки бо ягон базаи маълумот муошират мекард, он гоҳ ӯ низ метавонад ба таври ноаён афтода, ба ҳаёт баргардад. Ман инчунин метавонистам акка исрорро барои барқарор кардани ҳолати актёрҳо кӯшиш кунам, аммо татбиқи ҷорӣ бо соддагии худ ба ман мувофиқ аст. Ин на он аст, ки рамзи ман зуд-зуд вайрон мешавад - баръакс, ман барои ғайриимкон кардани он кӯшиши зиёд сарф кардам. Аммо ин ҳодиса рӯй медиҳад ва қобилияти ба қисмҳои ҷудогона тақсим кардани барнома - актёрҳо барои ман воқеан қулай ва амалӣ менамуд.

Ман circle-ci илова кардам, то ки агар код вайрон шавад, шумо дарҳол аз он огоҳ мешавед. Ҳадди ақал ин маънои онро дорад, ки код тартиб доданро қатъ кардааст. Дар аввал ман мехостам, ки Трависро илова кунам, аммо он танҳо лоиҳаҳои маро бе чангак нишон дод. Умуман, ҳардуи ин чизҳо метавонанд дар анборҳои кушода озодона истифода шаванд.

Натиҷаҳо

Аллакай моҳи ноябр аст. Бот навишта шудааст, ман онро ду ҳафтаи охир истифода мебарам ва ба ман писанд омад. Агар шумо идеяҳои такмилдиҳӣ дошта бошед, нависед. Ман нуқтаи гирифтани пулро намебинам - бигзор он танҳо кор кунад ва мақолаҳои ҷолиб фиристад.

Ссилка на бота: https://t.me/HabraFilterBot
Github: https://github.com/Kright/habrahabr_reader

Хулосаҳои хурд:

  • Ҳатто як лоиҳаи хурд метавонад вақти зиёдро талаб кунад.
  • Шумо Google нестед. Гунҷишкҳоро аз туп паррондан фоида надорад. Як ҳалли оддӣ метавонад инчунин кор кунад.
  • Лоиҳаҳои ҳайвонот барои таҷриба бо технологияҳои нав хеле хубанд.
  • Ботҳои Telegram хеле содда навишта шудаанд. Агар он барои "кори дастаҷамъӣ" ва таҷрибаҳо бо технология намебуд, бот дар давоми як ё ду ҳафта навишта мешуд.
  • Модели актёр як чизи ҷолибест, ки бо рамзи бисёрсоҳавӣ ва ба хатогиҳо таҳаммулпазир мувофиқ аст.
  • Ман фикр мекунам, ки ман дарк кардам, ки чаро ҷомеаи кушодаасос форкҳоро дӯст медорад.
  • Пойгоҳи додаҳо хубанд, зеро ҳолати барнома дигар аз садамаҳо/бозоғозкунии барнома вобаста нест, аммо кор бо пойгоҳи додаҳо кодро мушкилтар мекунад ва ба сохтори додаҳо маҳдудиятҳо ҷорӣ мекунад.

Манбаъ: will.com

Илова Эзоҳ