Telegram bot rau kev xaiv tus kheej ntawm cov khoom los ntawm Habr

Rau cov lus nug xws li "vim li cas?" muaj ib tsab ntawv qub - Ntuj Geektimes - ua qhov chaw huv.

Muaj ntau ntau cov ntawv, rau cov ntsiab lus vim li cas qee qhov kuv tsis nyiam, thiab qee qhov, ntawm qhov tsis sib xws, nws yog kev khuv xim hla. Kuv xav ua kom zoo dua cov txheej txheem no thiab txuag sijhawm.

Cov kab lus saum toj no tau pom zoo rau hauv-browser scripting mus kom ze, tab sis kuv tsis nyiam nws (txawm tias kuv tau siv nws ua ntej) rau cov laj thawj hauv qab no:

  • Rau cov browser sib txawv ntawm koj lub computer / xov tooj, koj yuav tsum teeb tsa nws dua, yog tias ua tau.
  • Kev lim dej nruj los ntawm cov kws sau ntawv tsis yog ib txwm yooj yim.
  • Qhov teeb meem nrog cov kws sau ntawv uas nws cov ntawv koj tsis xav nco, txawm tias lawv tau tshaj tawm ib xyoos ib zaug, tsis tau daws.

Kev lim dej ua rau hauv qhov chaw raws li cov lus ntsuas tsis yog ib txwm yooj yim, txij li cov khoom tshwj xeeb, txawm tias lawv tus nqi, tuaj yeem tau txais kev ntsuas qis qis.

Thaum xub thawj, kuv xav tsim ib qho RSS pub (lossis txawm tias ob peb), tawm hauv tsuas yog cov khoom nthuav. Tab sis thaum kawg, nws tau pom tias kev nyeem ntawv RSS tsis zoo li yooj yim heev: txawm li cas los xij, los tawm tswv yim / pov npav rau ib tsab xov xwm / ntxiv rau koj nyiam, koj yuav tsum mus dhau qhov browser. Tias yog vim li cas kuv thiaj sau tau ib lub telegram bot uas xa cov lus nthuav rau kuv hauv cov lus ntawm tus kheej. Telegram nws tus kheej ua kom zoo nkauj saib ua ntej ntawm lawv, uas, ua ke nrog cov ntaub ntawv hais txog tus sau / ntsuas / saib, zoo li cov ntaub ntawv zoo heev.

Telegram bot rau kev xaiv tus kheej ntawm cov khoom los ntawm Habr

Hauv qab ntawm qhov txiav yog cov ntsiab lus xws li cov yam ntxwv ntawm kev ua haujlwm, txheej txheem sau ntawv thiab kev daws teeb meem.

Luv luv txog lub bot

Repository: https://github.com/Kright/habrahabr_reader

Bot hauv telegram: https://t.me/HabraFilterBot

Tus neeg siv teeb tsa qhov ntsuas ntxiv rau cov cim npe thiab cov kws sau ntawv. Tom qab ntawd, lub lim tau siv rau cov ntawv - tsab xov xwm ntsuam xyuas ntawm HabrΓ©, tus sau tus neeg siv qhov ntsuas thiab qhov nruab nrab rau cov neeg siv kev ntaus nqi los ntawm tag yog ntxiv. Yog tias tus nqi ntau dua li tus neeg siv qhov pib qhia, ces tsab xov xwm dhau qhov lim.

Ib lub hom phiaj ntawm kev sau ntawv bot yog kom tau txais kev lom zem thiab kev paub. Tsis tas li ntawd xwb, kuv nco ntsoov kuv tus kheej li ntawd Kuv tsis yog Google, thiab yog li ntawd ntau yam tau ua tiav raws li yooj yim thiab txawm tias thaum xub thawj ua tau. Txawm li cas los xij, qhov no tsis tiv thaiv cov txheej txheem sau ntawv bot los ntawm kev siv peb lub hlis.

Nws yog lub caij ntuj sov sab nraum

Lub Xya Hli tau xaus, thiab kuv txiav txim siab sau bot. Thiab tsis nyob ib leeg, tab sis nrog ib tug phooj ywg uas yog mastering scala thiab xav sau ib yam dab tsi rau nws. Qhov pib zoo li cog lus - cov cai yuav raug txiav los ntawm ib pab neeg, txoj haujlwm zoo li yooj yim thiab kuv xav tias ob peb lub lis piam lossis ib hlis cov bot yuav npaj txhij.

Txawm hais tias kuv tus kheej tau sau cov cai ntawm lub pob zeb ib ntus rau ob peb xyoos dhau los, tsis muaj leej twg feem ntau pom lossis saib cov cai no: cov phiaj xwm tsiaj, sim qee cov tswv yim, cov ntaub ntawv ua ntej, mastering qee lub tswv yim los ntawm FP. Kuv txaus siab tiag tiag rau qhov kev sau ntawv hauv pab pawg zoo li cas, vim tias cov lej ntawm pob zeb tuaj yeem sau ntau txoj hauv kev.

Dab tsi tuaj yeem ploj mus li ntawd,? Txawm li cas los xij, cia peb tsis txhob maj khoom.
Txhua yam uas tshwm sim tuaj yeem taug qab tau siv keeb kwm kev cog lus.

Ib tus neeg paub tsim lub chaw khaws ntaub ntawv thaum Lub Xya Hli 27, tab sis tsis muaj dab tsi ntxiv, yog li kuv pib sau cov lej.

30 lub Xya hli ntuj

Luv luv: Kuv tau sau ib qho parsing ntawm Habr's rss pub.

  • com.github.pureconfig rau kev nyeem ntawv typesafe configs ncaj qha mus rau hauv cov chav kawm ntawv (nws tau ua kom yooj yim heev)
  • scala-xml rau kev nyeem xml: txij li thaum xub thawj kuv xav sau kuv tus kheej kev siv rau rss pub, thiab rss pub yog nyob rau hauv xml hom ntawv, kuv siv lub tsev qiv ntawv no rau parsing. Qhov tseeb, RSS parsing kuj tshwm sim.
  • scalatest rau kev xeem. Txawm tias cov haujlwm me me, kev sau ntawv yuav txuag lub sijhawm - piv txwv li, thaum debugging xml parsing, nws yooj yim dua los rub tawm rau hauv cov ntaub ntawv, sau cov ntawv xeem thiab kho qhov yuam kev. Thaum cov kab laum tom qab tshwm sim nrog kev txheeb xyuas qee qhov txawv html nrog cov cim tsis raug utf-8, nws tau ua kom yooj yim dua los muab tso rau hauv cov ntaub ntawv thiab ntxiv ib qho kev sim.
  • actors los ntawm Akka. Objectively, lawv tsis xav tau txhua, tab sis qhov project tau sau rau kev lom zem, kuv xav sim lawv. Yog li ntawd, kuv npaj siab hais tias kuv nyiam nws. Lub tswv yim ntawm OOP tuaj yeem saib ntawm sab nraud - muaj cov neeg ua yeeb yam sib pauv lus. Dab tsi yog qhov nthuav yog tias koj tuaj yeem (thiab yuav tsum) sau cov lej hauv txoj hauv kev uas cov lus yuav tsis tuaj txog lossis tsis tuaj yeem ua tiav (feem ntau hais lus, thaum tus account khiav ntawm ib lub computer, cov lus yuav tsum tsis txhob ploj). Thaum xub thawj kuv tau khawb kuv lub taub hau thiab muaj cov thoob khib nyiab hauv cov cai nrog cov neeg ua yeeb yam sib koom ua ke, tab sis thaum kawg kuv tau tswj kom tuaj nrog ib qho yooj yim thiab elegant architecture. Cov cai nyob rau hauv txhua tus neeg ua yeeb yam tuaj yeem suav hais tias yog ib txoj xov nkaus xwb; thaum tus neeg ua yeeb yam tsoo, acca rov pib dua - qhov tshwm sim yog qhov ua txhaum cai.

9 Aug

Kuv ntxiv rau qhov project scala-scrapper rau parsing html nplooj ntawv los ntawm Habr (kom rub tawm cov ntaub ntawv xws li tsab xov xwm ntsuam xyuas, tus naj npawb ntawm bookmarks, thiab lwm yam).

Thiab miv. Cov nyob hauv pob zeb.

Telegram bot rau kev xaiv tus kheej ntawm cov khoom los ntawm Habr

Tom qab ntawd kuv nyeem ib phau ntawv hais txog cov ntaub ntawv faib tawm, Kuv nyiam lub tswv yim ntawm CRDT (Cov ntaub ntawv tsis sib haum xeeb tsis muaj kev hloov pauv, https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type, habr), yog li kuv tau tshaj tawm hom chav kawm ntawm ib pawg neeg sib txuas lus rau cov ntaub ntawv hais txog tsab xov xwm ntawm HabrΓ©.

Qhov tseeb, lub tswv yim yog yooj yim heev - peb muaj cov txee uas hloov monotonically. Tus naj npawb ntawm kev nce qib yog maj zuj zus, raws li yog tus naj npawb ntawm pluses (nrog rau tus naj npawb ntawm minuses). Yog hais tias kuv muaj ob versions ntawm cov ntaub ntawv hais txog ib tsab xov xwm, ces kuv muaj peev xwm "muab lawv mus rau hauv ib tug" - lub xeev ntawm lub txee uas loj dua yog suav hais tias tseem ceeb dua.

Ib pab pawg neeg txhais tau hais tias ob yam khoom nrog cov ntaub ntawv hais txog ib tsab xov xwm tuaj yeem muab tso rau hauv ib qho. Commutative txhais tau hais tias koj tuaj yeem sib koom ua ke A + B thiab B + A, qhov tshwm sim tsis yog nyob ntawm qhov kev txiav txim, thiab thaum kawg qhov tshiab tshaj plaws yuav nyob twj ywm. Los ntawm txoj kev, tseem muaj kev sib koom ua ke ntawm no.

Piv txwv li, raws li tau npaj tseg, rss tom qab parsing muab cov ntaub ntawv tsis muaj zog me ntsis txog tsab xov xwm - tsis muaj kev ntsuas xws li tus naj npawb ntawm kev pom. Ib tug neeg ua yeeb yam tshwj xeeb tom qab ntawd coj cov ntaub ntawv hais txog cov ntawv thiab khiav mus rau nplooj ntawv html los hloov kho nws thiab sib koom ua ke nrog cov ntawv qub.

Feem ntau hais lus, ib yam li hauv akka, tsis tas yuav tsum muaj qhov no, koj tuaj yeem khaws qhov hloov tshiab Hnub rau tsab xov xwm thiab coj tus tshiab dua yam tsis muaj kev sib koom ua ke, tab sis txoj kev taug txuj kev nyuaj coj kuv.

12 Aug

Kuv pib xav tias muaj kev ywj pheej thiab, tsuas yog kev lom zem, kuv ua rau txhua tus sib tham sib cais ua yeeb yam. Raws li txoj cai, tus neeg ua yeeb yam nws tus kheej hnyav txog 300 bytes thiab lawv tuaj yeem tsim tau ntau lab, yog li qhov no yog ib txwm ua kom zoo. Nws zoo nkaus li kuv tias qhov kev daws teeb meem tau nthuav tawm heev:

Ib tug neeg ua yeeb yam yog tus choj ntawm telegram server thiab cov xov xwm hauv Akka. Nws tsuas yog tau txais cov lus thiab xa lawv mus rau qhov xav tau sib tham ua yeeb yam. Tus neeg ua yeeb yam sib tham tuaj yeem xa qee yam rov qab los teb - thiab nws yuav raug xa rov qab mus rau hauv xov tooj. Dab tsi yog qhov yooj yim heev yog tias tus neeg ua yeeb yam no tau ua kom yooj yim li sai tau thiab tsuas muaj qhov laj thawj rau kev teb cov lus. Los ntawm txoj kev, cov ntaub ntawv hais txog cov ntawv tshiab tuaj rau txhua qhov kev sib tham, tab sis dua kuv tsis pom muaj teeb meem hauv qhov no.

Feem ntau, bot twb tau ua haujlwm, teb cov lus, khaws cov npe ntawm cov ntawv xa mus rau tus neeg siv, thiab kuv twb xav tias bot yuav luag npaj txhij. Kuv maj mam ntxiv me ntsis nta xws li normalizing sau npe thiab cov cim npe (hloov "sd f" nrog "s_d_f").

Tsuas muaj ib yam nkaus xwb me me tab sis β€” lub xeev tsis tau txais kev cawmdim nyob qhov twg.

Txhua yam ua yuam kev

Tej zaum koj yuav tau pom tias kuv sau bot feem ntau ib leeg. Yog li, tus neeg koom thib ob tau koom nrog hauv kev txhim kho, thiab cov kev hloov pauv hauv qab no tau tshwm sim hauv cov cai:

  • MongoDB tshwm sim los khaws lub xeev. Nyob rau tib lub sijhawm, cov cav hauv qhov project tau tawg, vim qee qhov laj thawj Monga pib spamming lawv thiab qee tus neeg tsuas yog muab lawv tawm hauv ntiaj teb.
  • Tus choj ua yeeb yam hauv Telegram tau hloov pauv dhau qhov kev lees paub thiab pib txheeb xyuas cov lus nws tus kheej.
  • Cov neeg ua yeeb yam rau kev sib tham tau raug txiav tawm tsis muaj kev hlub, thiab lawv tau hloov los ntawm tus neeg ua yeeb yam uas zais tag nrho cov ntaub ntawv hais txog txhua qhov kev sib tham ib zaug. Rau txhua qhov txham, tus neeg ua yeeb yam no tau ntsib teeb meem. Zoo, yog, zoo li thaum hloov kho cov ntaub ntawv hais txog ib tsab xov xwm, xa mus rau txhua tus neeg sib tham yog qhov nyuaj (peb zoo li Google, ntau lab tus neeg siv tau tos txog ib lab kab lus hauv kev sib tham rau txhua tus), tab sis txhua zaus kev sib tham hloov tshiab, Nws yog ib txwm mus rau hauv Monga. Raws li kuv paub ntau tom qab, kev ua haujlwm ntawm kev sib tham tau raug txiav tawm tag nrho thiab hauv nws qhov chaw ib yam dab tsi uas tsis ua haujlwm tau tshwm sim.
  • Tsis muaj kab laug sab ntawm cov chav kawm.
  • Qee qhov kev xav tsis zoo tau tshwm sim hauv cov neeg ua yeeb yam nrog lawv cov npe rau ib leeg, ua rau muaj kev sib tw.
  • Cov ntaub ntawv qauv nrog cov teb ntawm hom Option[Int] hloov mus rau Int nrog tej yam yees siv default zoo li -1. Tom qab ntawd kuv pom tau hais tias mongoDB khw muag khoom json thiab tsis muaj dab tsi tsis ncaj ncees lawm nrog khaws cia rau ntawd Option zoo, los yog tsawg kawg parse -1 li Tsis muaj, tab sis lub sij hawm ntawd kuv tsis paub qhov no thiab coj kuv lo lus rau nws hais tias "yog li ntawd nws yuav tsum tau." Kuv tsis tau sau tus lej ntawd, thiab kuv tsis thab hloov nws rau lub sijhawm.
  • Kuv pom tias kuv qhov chaw nyob IP pej xeem nyiam hloov pauv, thiab txhua zaus kuv yuav tsum tau ntxiv rau hauv daim ntawv teev npe dawb ntawm Mongo. Kuv pib lub bot hauv zos, Monga yog qhov chaw ntawm cov servers ntawm Monga ua lub tuam txhab.
  • Dheev, qhov normalization ntawm cov cim npe thiab cov lus formatting rau telegrams ploj lawm. (Hmm, yog vim li cas thiaj yuav?)
  • Kuv nyiam tias bot lub xeev tau khaws cia rau hauv cov ntaub ntawv sab nraud, thiab thaum rov pib dua nws tseem ua haujlwm zoo li tsis muaj dab tsi tshwm sim. Txawm li cas los xij, qhov no tsuas yog qhov ntxiv.

Tus neeg thib ob tsis muaj kev kub ntxhov tshwj xeeb, thiab tag nrho cov kev hloov pauv no tau tshwm sim hauv ib lub pob loj uas twb muaj lawm thaum pib lub Cuaj Hli. Kuv tsis tau txaus siab tam sim ntawd qhov ntsuas ntawm qhov kev puas tsuaj tshwm sim thiab pib nkag siab txog kev ua haujlwm ntawm cov ntaub ntawv, vim ... Kuv yeej tsis tau nrog lawv ua ntej. Tsuas yog tom qab ntawd kuv puas paub tias ntau npaum li cas cov lej ua haujlwm raug txiav thiab muaj pes tsawg kab tau ntxiv rau hauv nws qhov chaw.

Lub Cuaj Hli

Thaum xub thawj kuv xav tias nws yuav pab tau rau tus tswv Monga thiab ua nws zoo. Tom qab ntawd kuv maj mam pib nkag siab tias kev teeb tsa kev sib txuas lus nrog cov ntaub ntawv tseem yog ib qho kev kos duab uas koj tuaj yeem ua ntau haiv neeg thiab tsuas yog ua yuam kev. Piv txwv li, yog tias tus neeg siv tau txais ob cov lus zoo li /subscribe - thiab nyob rau hauv teb rau txhua tus peb yuav tsim ib qho kev nkag rau hauv lub rooj, vim hais tias thaum lub sij hawm ntawm kev ua cov lus cov neeg siv yuav tsis sau npe. Kuv muaj qhov tsis txaus ntseeg tias kev sib txuas lus nrog Monga hauv nws daim ntawv tam sim no tsis tau sau rau hauv txoj kev zoo tshaj plaws. Piv txwv li, tus neeg siv cov kev teeb tsa tau tsim thaum lub sijhawm nws kos npe. Yog hais tias nws sim hloov lawv ua ntej qhov tseeb ntawm subscription ... lub bot tsis teb dab tsi, vim hais tias cov code nyob rau hauv lub actor mus rau hauv lub database rau cov chaw, tsis pom nws thiab poob. Thaum nug tias vim li cas ho tsis tsim cov chaw raws li qhov xav tau, kuv tau kawm tias tsis tas yuav hloov pauv yog tias tus neeg siv tsis tau sau npe ... Cov lus lim dej tau ua qee yam tsis pom tseeb, thiab txawm tias tom qab saib ze ntawm cov lej kuv tuaj yeem ua tau. tsis nkag siab seb nws tau npaj li no thaum xub thawj lossis muaj qhov yuam kev nyob ntawd.

Tsis muaj cov npe ntawm cov ntawv xa mus rau kev sib tham; hloov, nws tau hais tias kuv sau lawv tus kheej. Qhov no ua rau kuv xav tsis thoob - feem ntau, kuv tsis tawm tsam kev rub txhua yam rau hauv qhov project, tab sis nws yuav yog qhov laj thawj rau tus uas coj cov khoom no los rau hauv thiab ntsia lawv. Tab sis tsis yog, tus neeg koom thib ob zoo li tso tseg txhua yam, tab sis tau hais tias cov npe hauv kev sib tham yog qhov kev daws teeb meem tsis zoo, thiab nws yuav tsum tau kos npe nrog cov xwm txheej zoo li "ib tsab xov xwm y raug xa mus rau tus neeg siv x." Tom qab ntawd, yog tias tus neeg siv thov kom xa cov ntawv tshiab, nws yog qhov yuav tsum tau xa daim ntawv thov mus rau cov ntaub ntawv, uas yuav xaiv cov xwm txheej ntsig txog tus neeg siv los ntawm cov xwm txheej, kuj tau txais cov npe ntawm cov ntawv tshiab, lim lawv, xa mus rau tus neeg siv. thiab muab cov xwm txheej txog qhov no rov qab rau hauv cov ntaub ntawv.

Tus neeg koom thib ob tau nqa mus rau qhov chaw ntawm kev paub daws teeb meem, thaum lub bot yuav tsis tau txais cov ntawv los ntawm Habr nkaus xwb thiab tsis yog xa mus rau hauv xov tooj xwb.

Kuv ua li cas siv cov txheej xwm nyob rau hauv daim ntawv ntawm ib tug cais kos npe rau lub thib ob ib nrab ntawm lub Cuaj Hli. Nws tsis zoo, tab sis tsawg kawg yog tus bot pib ua haujlwm thiab pib xa kuv cov ntawv dua, thiab kuv maj mam txheeb xyuas qhov tshwm sim hauv cov cai.

Tam sim no koj tuaj yeem rov qab mus rau qhov pib thiab nco ntsoov tias lub chaw cia khoom tsis yog tsim los ntawm kuv. Yuav ua li cas mus zoo li no? Kuv qhov kev thov rub tau raug tsis lees paub. Nws muab tawm tias kuv muaj redneck code, uas kuv tsis paub yuav ua li cas ua hauj lwm nyob rau hauv ib pab neeg, thiab kuv yuav tsum tau kho cov kab mob nyob rau hauv lub tam sim no kev siv nkhaus, thiab tsis refine nws mus rau lub xeev usable.

Kuv chim siab thiab saib cov keeb kwm kev cog lus thiab tus lej ntawm cov lej sau. Kuv saib lub sij hawm uas thaum xub thawj sau tau zoo, thiab tom qab ntawd tawg rov qab ...

F*rk nws

Kuv nco qab tsab xov xwm Koj tsis yog Google.

Kuv xav tias tsis muaj leej twg xav tau lub tswv yim yam tsis muaj kev siv. Kuv xav tias kuv xav kom muaj ib tug ua hauj lwm bot, uas yuav ua hauj lwm nyob rau hauv ib tug tib daim qauv ntawm ib tug tib lub computer raws li ib tug yooj yim java program. Kuv paub tias kuv tus bot yuav ua haujlwm tau ntau lub hlis yam tsis tau rov pib dua, txij li kuv tau sau cov bots yav dhau los. Yog tias nws dheev ntog thiab tsis xa tus neeg siv lwm tsab xov xwm, lub ntuj yuav tsis poob rau hauv av thiab tsis muaj dab tsi txaus ntshai yuav tshwm sim.

Vim li cas kuv thiaj li xav tau Docker, mongoDB thiab lwm yam khoom thauj khoom ntawm "loj" software yog tias tus lej tsis ua haujlwm lossis ua haujlwm tsis zoo?

Kuv forked qhov project thiab ua txhua yam raws li kuv xav.

Telegram bot rau kev xaiv tus kheej ntawm cov khoom los ntawm Habr

Nyob rau tib lub sijhawm, kuv tau hloov txoj haujlwm thiab lub sijhawm dawb tau dhau los ua qhov tsis txaus. Thaum sawv ntxov kuv sawv ntawm lub tsheb ciav hlau, thaum yav tsaus ntuj kuv rov qab los lig thiab tsis xav ua dab tsi ntxiv lawm. Kuv tsis tau ua dab tsi rau ib pliag, ces qhov kev xav ua kom tiav cov bot tau dhau los ua rau kuv, thiab kuv pib maj mam rov sau cov lej thaum kuv tsav tsheb mus ua haujlwm thaum sawv ntxov. Kuv yuav tsis hais tias nws ua tau zoo: zaum ntawm lub tsheb ciav hlau co nrog lub laptop ntawm koj lub ceg tawv thiab saib cov khoom ntws los ntawm koj lub xov tooj tsis yooj yim heev. Txawm li cas los xij, lub sij hawm siv sau code ya los ntawm kev tsis pom zoo, thiab qhov project pib maj mam txav mus rau lub xeev ua haujlwm.

Qee qhov hauv qab ntawm kuv lub siab muaj cov kab mob tsis txaus ntseeg uas xav siv mongoDB, tab sis kuv xav tias ntxiv rau qhov zoo ntawm "kev ntseeg siab" lub xeev cia, muaj qhov tsis zoo:

  • Lub database dhau los ua lwm qhov kev ua tsis tiav.
  • Txoj cai tau dhau los ua nyuaj, thiab nws yuav siv sijhawm ntev rau kuv los sau nws.
  • Cov cai dhau los ua qeeb thiab tsis muaj txiaj ntsig; es tsis txhob hloov cov khoom hauv lub cim xeeb, cov kev hloov pauv raug xa mus rau cov ntaub ntawv thiab rub rov qab yog tias tsim nyog.
  • Muaj kev txwv rau hom kev cia ntawm cov xwm txheej hauv ib lub rooj sib cais, uas cuam tshuam nrog cov peculiarities ntawm cov ntaub ntawv.
  • Qhov kev sim version ntawm Monga muaj qee qhov kev txwv, thiab yog tias koj khiav mus rau lawv, koj yuav tsum tau tso tawm thiab teeb tsa Monga ntawm qee yam.

Kuv txiav tawm lub monga, tam sim no lub bot lub xeev tsuas yog khaws cia rau hauv qhov kev pab cuam lub cim xeeb thiab los ntawm lub sij hawm mus rau lub sij hawm txuag rau ib cov ntaub ntawv nyob rau hauv daim ntawv ntawm json. Tej zaum hauv cov lus lawv yuav sau tias kuv tsis yog, qhov no yog qhov twg cov ntaub ntawv yuav tsum tau siv, thiab lwm yam. Tab sis qhov no yog kuv qhov project, txoj hauv kev nrog cov ntaub ntawv yooj yim li sai tau thiab nws ua haujlwm hauv pob tshab.

Pov tawm cov txiaj ntsig zoo li -1 thiab rov qab cov qub qub Option, ntxiv kev cia ntawm lub rooj hash nrog xa cov khoom rov qab rau cov khoom nrog cov ntaub ntawv sib tham. Ntxiv kev tshem tawm cov ntaub ntawv hais txog cov khoom qub tshaj tsib hnub, yog li tsis txhob khaws txhua yam. Kuv coj kev nkag mus rau lub xeev ua haujlwm - cov ntawv teev lus tau sau rau hauv qhov tsim nyog rau ob qho tib si cov ntaub ntawv thiab lub console. Ntxiv ntau cov lus txib xws li txuag lub xeev lossis tau txais cov txheeb cais xws li tus naj npawb ntawm cov neeg siv thiab cov khoom.

Kho ib pawg ntawm cov khoom me me: piv txwv li, rau cov ntawv xov xwm tus naj npawb ntawm kev pom, nyiam, tsis nyiam thiab cov lus pom thaum lub sijhawm dhau ntawm tus neeg siv lub lim tam sim no tau qhia. Feem ntau, nws xav tsis thoob tias muaj pes tsawg yam me me yuav tsum tau kho. Kuv khaws ib daim ntawv teev npe, sau tag nrho cov "tsis xwm yeem" nyob ntawd thiab kho lawv kom deb li deb tau.

Piv txwv li, kuv ntxiv lub peev xwm los teeb tsa txhua qhov chaw ncaj qha hauv ib qho lus:

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

Thiab lwm pab neeg /settings qhia lawv raws nraim hauv daim ntawv no, koj tuaj yeem nqa cov ntawv los ntawm nws thiab xa tag nrho cov chaw rau phooj ywg.
Nws zoo li ib qho me me, tab sis muaj ntau ntau cov nuances zoo sib xws.

Ua raws li tsab xov xwm lim hauv daim ntawv ntawm cov qauv yooj yim linear - tus neeg siv tuaj yeem teeb tsa qhov ntsuas ntxiv rau cov sau ntawv thiab cov cim npe, nrog rau tus nqi pib. Yog tias tus lej ntawm tus sau qhov ntsuas, qhov ntsuas nruab nrab ntawm cov cim npe thiab qhov ntsuas qhov tseeb ntawm tsab xov xwm yog ntau dua li tus nqi pib, ces tsab xov xwm tau qhia rau tus neeg siv. Koj tuaj yeem nug tus bot rau cov ntawv nrog cov lus txib / tshiab, lossis sau npe rau bot thiab nws yuav xa cov ntawv hauv cov lus ntawm tus kheej txhua lub sijhawm ntawm hnub.

Feem ntau hais lus, kuv muaj ib lub tswv yim rau txhua tsab xov xwm kom rub tawm ntau yam ntxiv (hubs, tus naj npawb ntawm cov lus pom, bookmarks, kev hloov pauv ntawm kev ntsuas, tus nqi ntawm cov ntawv nyeem, cov duab thiab cov lej hauv kab lus, cov ntsiab lus), thiab qhia tus neeg siv qhov ok / tsis ok pov npav hauv txhua kab lus thiab qhia tus qauv rau txhua tus neeg siv, tab sis kuv tub nkees heev.

Tsis tas li ntawd, lub logic ntawm kev ua haujlwm yuav tsis pom tseeb. Tam sim no kuv tuaj yeem teeb tsa qhov ntsuas ntawm +9000 rau tus neeg mobZero thiab nrog qhov ntsuas pib ntawm +20 Kuv yuav tau lees paub kom tau txais tag nrho nws cov ntawv (tshwj tsis yog, tau kawg, kuv teeb -100500 rau qee cov cim npe).

Qhov kawg architecture tau dhau los ua qhov yooj yim heev:

  1. Tus neeg ua yeeb yam uas khaws lub xeev ntawm txhua qhov kev sib tham thiab kab lus. Nws thauj nws lub xeev los ntawm cov ntaub ntawv ntawm lub disk thiab txuag nws rov qab los ntawm lub sijhawm, txhua zaus mus rau cov ntaub ntawv tshiab.
  2. Ib tug neeg ua yeeb yam uas tuaj xyuas RSS pub ib ntus, kawm txog cov ntawv tshiab, saib cov ntawv txuas, txheeb xyuas, thiab xa cov ntawv no mus rau thawj tus neeg ua yeeb yam. Tsis tas li ntawd, qee zaum nws thov cov npe ntawm cov ntawv los ntawm thawj tus neeg ua yeeb yam, xaiv cov uas tsis muaj hnub nyoog tshaj peb hnub, tab sis tsis tau hloov kho rau lub sijhawm ntev, thiab hloov kho lawv.
  3. Tus actor uas sib txuas lus nrog ib tug telegram. Kuv tseem coj cov lus parsing tag nrho ntawm no. Nyob rau hauv ib txoj kev sib haum xeeb, kuv xav muab faib ua ob - yog li ntawd ib qho parses cov lus tuaj, thiab qhov thib ob cuam tshuam nrog cov teeb meem thauj xws li rov xa cov lus tsis xa tuaj. Tam sim no tsis muaj kev xa rov qab, thiab cov lus uas tsis tuaj txog vim qhov yuam kev yuav tsuas ploj (tshwj tsis yog nws tau sau tseg hauv cov cav), tab sis txog tam sim no qhov no tsis tau ua rau muaj teeb meem. Tej zaum teeb meem yuav tshwm sim yog ib pawg ntawm cov neeg sau npe rau bot thiab kuv mus txog qhov txwv rau kev xa lus).

Qhov kuv nyiam yog ua tsaug rau akka, ntog ntawm cov neeg ua yeeb yam 2 thiab 3 feem ntau tsis cuam tshuam rau kev ua haujlwm ntawm bot. Tej zaum qee cov ntawv tsis tau hloov kho raws sijhawm lossis qee cov lus tsis tuaj yeem ncav cuag lub xov tooj, tab sis tus account restarts tus neeg ua yeeb yam thiab txhua yam tseem ua haujlwm. Kuv khaws cov ntaub ntawv uas tsab xov xwm qhia rau tus neeg siv tsuas yog thaum tus neeg ua yeeb yaj kiab telegram teb tias nws tau xa cov lus tiav lawm. Qhov phem tshaj plaws uas hem kuv yog xa cov lus ob peb zaug (yog tias nws raug xa, tab sis qhov kev lees paub yog qee yam ploj). Nyob rau hauv txoj cai, yog hais tias tus thawj actor tsis khaws lub xeev nyob rau hauv nws tus kheej, tab sis sib txuas lus nrog ib co database, ces nws kuj yuav poob imperceptibly thiab rov qab mus rau lub neej. Kuv kuj tuaj yeem sim akka kev mob siab rau los kho lub xeev ntawm cov neeg ua yeeb yam, tab sis qhov kev siv tam sim no haum rau kuv nrog nws txoj kev yooj yim. Nws tsis yog tias kuv tus lej poob ntau zaus - ntawm qhov tsis sib xws, kuv siv zog ntau heev los ua kom nws ua tsis tau. Tab sis shit tshwm sim, thiab muaj peev xwm los rhuav tshem qhov kev pab cuam rau hauv kev sib cais-cov neeg ua yeeb yam zoo li yooj yim thiab siv tau rau kuv.

Kuv ntxiv lub voj voog-ci kom yog tias tus lej tawg, koj yuav pom tam sim ntawd. Yam tsawg kawg, nws txhais tau hais tias cov cai tau tso tseg. Thaum xub thawj kuv xav ntxiv travis, tab sis nws tsuas pom kuv cov haujlwm yam tsis muaj rab rawg. Feem ntau, ob qho tib si ntawm cov khoom no tuaj yeem siv dawb hauv cov chaw cia khoom qhib.

Cov txiaj ntsim tau los

twb yog lub Kaum Ib Hlis. Cov bot tau sau, Kuv tau siv nws ob lub lis piam dhau los thiab kuv nyiam nws. Yog tias koj muaj tswv yim rau kev txhim kho, sau. Kuv tsis pom lub ntsiab lus hauv monetizing nws - cia nws ua haujlwm thiab xa cov lus nthuav.

Bot link: https://t.me/HabraFilterBot
Github: https://github.com/Kright/habrahabr_reader

Cov lus xaus me me:

  • Txawm tias ib qhov project me me tuaj yeem siv sijhawm ntev.
  • Koj tsis yog Google. Tsis muaj teeb meem nyob rau hauv tua sparrows los ntawm ib tug cannon. Ib qho kev daws teeb meem yooj yim tuaj yeem ua haujlwm ib yam nkaus.
  • Cov phiaj xwm tsiaj zoo heev rau kev sim nrog cov thev naus laus zis tshiab.
  • Telegram bots tau sau yooj yim heev. Yog tias nws tsis yog rau "pab pawg" thiab kev sim nrog thev naus laus zis, bot yuav tau sau rau hauv ib lub lis piam lossis ob zaug.
  • Tus neeg ua yeeb yam qauv yog qhov nthuav tshaj plaws uas ua tau zoo nrog ntau txoj xov thiab kev ua txhaum cai.
  • Kuv xav tias kuv tau txais qhov saj ntawm vim li cas lub zej zog qhib qhov chaw nyiam rab rawg.
  • Databases yog qhov zoo vim tias daim ntawv thov lub xeev tsis nyob ntawm daim ntawv thov sib tsoo / rov pib dua, tab sis kev ua haujlwm nrog cov ntaub ntawv nyuaj rau cov cai thiab txwv tsis pub cov ntaub ntawv qauv.

Tau qhov twg los: www.hab.com

Ntxiv ib saib