From 295835c28319d6abda962d28d6c710ac7cacde35 Mon Sep 17 00:00:00 2001 From: eleksir Date: Thu, 22 Oct 2020 12:26:44 +0300 Subject: [PATCH] Add famous latin prases module --- bin/train_lat.pl | 27 + data/phrases.txt | 1336 +++++++++++++++++++++++++++++++++++++++ data/sample_config.json | 5 +- lib/lat.pm | 76 +++ lib/telegrambot.pm | 6 + 5 files changed, 1449 insertions(+), 1 deletion(-) create mode 100644 bin/train_lat.pl create mode 100644 data/phrases.txt create mode 100644 lib/lat.pm diff --git a/bin/train_lat.pl b/bin/train_lat.pl new file mode 100644 index 0000000..b08e7d5 --- /dev/null +++ b/bin/train_lat.pl @@ -0,0 +1,27 @@ +#!/usr/bin/perl + +use 5.018; +use strict; +use warnings; +use utf8; +use open qw(:std :utf8); +use English qw( -no_match_vars ); +use vars qw/$VERSION/; +$VERSION = '1.0'; + +my $workdir; + +# before we run, change working dir +BEGIN { + use Cwd qw(chdir abs_path); + my @CWD = split /\//xms, abs_path ($PROGRAM_NAME); + if ($#CWD > 1) { $#CWD = $#CWD - 2; } + $workdir = join '/', @CWD; + chdir $workdir; +} + +use lib ("$workdir/lib", "$workdir/vendor_perl", "$workdir/vendor_perl/lib/perl5"); +use lat qw(train); + +train (); +exit 0; diff --git a/data/phrases.txt b/data/phrases.txt new file mode 100644 index 0000000..e1862c4 --- /dev/null +++ b/data/phrases.txt @@ -0,0 +1,1336 @@ +A caelo usque ad centrum +A capillo usque ad ungues +A capite ad calcem +A casu ad casum +A contrario +A dato +A fortiori +A limine +A majore ad minus +A maximis ad minima +A mensa et toro +A nativitate +A nescire ad non esse +A novo +A parte +A pedibus usque ad caput +A posse ad esse +A posse ad esse non valet consequential +A posteriori +A potentia ad actum +A potiori +A potiori fit denominatio +A prima facie +A priori +A probis probari, ab improbis improbari aequa laus est +A realibus ad realiora +A sacris +A tuo lare incipe +Ab absurdo +Ab aeterno +Ab antiquo +Ab equis ad asinos +Ab esse ad posse valet consequentia +Ab exterioribus ad interiora +Ab extra +Ab hinc +Ab hoc et ab hac +Ab hodierno +Ab hoedis scindere oves +Ab igne ignem +Ab imis unguibus ad verticem summum +Ab imo pectore +Ab inconvenienti +Ab incunabulis +Ab initio +Ab initio nullum, semper nullum +Ab intestato +Ab irato +Ab Jove principium +Ab origine +Ab ovo +Ab ovo usque ad mala +Ab posse ad esse consequentia (illatio) non valet +Ab uno disce omnes +Ab Urbe condita +Abeunt studia in mores +Abiens, abi! +Absente aegroto +Absit omen! +Absit verbo invidia +Absolutio ab instantia +Absolvo te! +Absque nota +Absque omni exceptionae +Abstractum pro concreto +Absurdum in adjecto +Abusus non tollit usum +Abyssus abyssum invocat +Accessio cedit principali +Acta diurna +Acta est fabula! +Actio immanens +Actio in distans +Actio in factum +Actio popularis +Actio transiens +Actore non probante reus absolvitur +Actor sequitur forum rei +Actum atque tractatum +Actum est ilicet! +Actum ut supra +Actus purus +Ad absurdum +Ad acta +Ad aeternum +Ad aras +Ad arbitrium +Ad augusta per angusta +Ad bestias! +Ad Calendas Graecas +Ad captandum benevolentiam +Ad captandum vulgus +Ad cogitandum et agendum homo natus est +Ad delectandum +Ad discendum, non ad docendum +Ad disputandum +Ad ea debeat adaptari jus, quae frequenter eveniunt +Ad exemplum +Ad extra +Ad extremitates +Ad finem +Ad fontes +Ad futuram memoriam +Ad futuram rei memoriam +Ad gloriam +Ad gustum +Ad hastam +Ad Herculis columnas +Ad hoc +Ad hominem +Ad honores +Ad hoste maligno libera nos, Domine +Ad impossibilia nemo tenetur +Ad infinitum +Ad informandum +Ad instar +Ad instruendum +Ad interim +Ad latus +Ad libita librarii +Ad libitum +Ad limina (apostolorum) +Ad litem +Ad litteram +Ad loca! +Ad majorem Dei gloriam +Ad manum +Ad maximum +Ad meliora tempora +Ad meliorem +Ad memorandum +Ad minimum +Ad modum +Ad multos annos +Ad narrandum, non ad probandum +Ad nauseam +Ad normam +Ad notam +Ad notanda +Ad notata +Ad oculos +Ad opus! +Ad patres +Ad patres conscriptos +Ad perpetuam rei memoriam +Ad personam +Ad pias causas +Ad pluralitatem votorum +Ad populum +Ad profundum +Ad publicandum +Ad ratificandum +Ad referendum +Ad rem +Ad se ipsum +Ad totalem evaporabionem +Ad tertium +Ad unguem +Ad unum omnes +Ad usum delphini +Ad usum externum +Ad usum internum +Ad usum populi +Ad usum proprium +Ad usum vitae +Ad valorem +Ad verbum +Ad verbum audiendum +Ad victoriam +Ad vitam +Ad vitam aeternam +Ad vitam aut culpam +Ad vocem +Adhuc sub judice lis est +Adverbium +Advitalitum +Advocatus Dei +Advocatus Diaboli +Aequam memento rebus in arduis servare mentem +Aequat causa effectum +Aequilibrium indifferentiae +Aequo animo +Aequo pulsat pede +Aequum est neminem cum alterius detrimento et injuria fieri locupletiorem +Aere perennius +Aes triplex +Aeterna historia +Aeterna urbs +Aeternae veritates +Aeternum vale +Age, libertate decembri utere +Age, quod agis, et respice finem +Agere sequitur esse +Ager publicus +Agnosco veteris vestigia flammae +Agnus Dei +Ajo! +Albo lapillo notare diem +Alea iacta (jacta) est +Alia editio +Alia tempora +Alibi +Aliena vitia in oculis habemus, a tergo nostra sunt +Alienatio mentis +Alieni juris +Aliis inserviendo consumor +Aliquando bonus dormitat Homerus +Aliud stans, aliud sedens +Alius alio plura invenire potest, nemo omnia +Alma Mater +Alter ego +Alter idem +Altera pars +Altum silentium +Amabile opus +Amabilis insania +Amabilis scientia +Amant alterna Camenae +Amantes sunt amentes +Amantium irae +Amantium irae amoris integratio +Amat victoria curam +Amata nobis quantum amabitur nulla +Amen! +Amicalia desideria +Amici, diem perdidi +Amicus certus in re incerta cernitur +Amicus cognoscitur amore, more, ore, re +Amicus (Animal) humani generis +Amicus incommodus ab inimico non differt +Amicus meus +Amicus Plato, sed magis amica est veritas +Amicus verus +Amor caecus +Amor fati +Amor patriae +Amor vincit omnia +Amor non est medicabilis herbis +An nescis longas regibus esse manus? +An nescis, mi fili, quantilla prudentia mundus regatur? +Analogia entis +Anathema maranata +Ancilla philosophiae +Ancilla theologiae +Anguis in herba +Angulus ridet +Anima +Anima vilis +Animalia vivunt, crescunt et sentiunt +Animam in promptu habere +Animi magnitudo +Animus +Animus denuntiandi +Animus injuriandi +Animus meminisse horret +Animus possidendi +Animus quod perdidit optat, Atque in praeterita se totus imagine versat +Animus rem sibi habendi +Animus suspicax +Anni currentis +Anno +Anno ab urbe condita +Anno aetatis suae +Anno ante Christum Natum +Anno Christi +Anno Domini +Anno mundi +Anno post Romam conditam +Annus horribilis +Ante bellum +Ante Christum Natum +Ante diem +Ante factum +Ante mare undae +Ante meridiem +Ante nuptias donatio +Ante quem +Anterioritas +Apparatus criticus +Appellatio +Appendix +Appetitus societatis +Aqua bulliens +Aqua destillata +Aqua et igni alicui interdicere +Aqua et ignis +Aqua et panis, vita canis +Aqua fontana +Aqua [cavat] lapidem non vi, sed saepe cadendo +Aqua pluvialis +Aqua pura +Aqua tophana +Aqua vitae +Aquae et ignis interdictio, hoc est exillum +Aquae potoribus +Aquila non captat muscas +Arbiter elegantiae +Arboretum +Arcades ambo +Argenteis hastis pugnare +Argentum nitricum +Argumenta ambigua +Argumenta ponderantur, non numerantur +Argumentum a contrario +Argumentum a posteriori +Argumentum a priori +Argumentum a silentio +Argumentum a tuto +Argumentum achilleum +Argumentum ad crumenam +Argumentum ad hominem +Argumentum ad ignorantiam +Argumentum ad invidia +Argumentum ad judicum +Argumentum ad misericordiam +Argumentum ad populum +Argumentum ad rem +Argumentum ad verecundiam +Argumentum ad veritatem +Argumentum ambiguum (communis) +Argumentum baculinum +Argumentum ex consensu gentum +Argumentum ex silentio +Argumentum externum +Argumentum internum +Argumentum legis +Argumentum primarium (palmarium) +Arma virumque cano +Arrectis auribus +Ars adeo latet arte sua +Ars amandi +Ars est celare artem +Ars et norma interpretandi naturam +Ars gubernandi +Ars moriendi +Ars logica +Ars longa, vita brevis +Ars oratoria +Ars poetica +Ars sacra +Ars una, species mille +Ars vitae +Artes ingenuae (liberales) +Artes molliunt mores +Articulo mortis +Articulus +Articulus secretissimus +Artificiosa natura +Artium magister +Asa foetida +Asini exiguo pabulo vivunt +Asinos non curo +Asinus asinorum in saecula saeculorum +Asinus asinum fricat +Asinus Buridani inter duo prata +Associatio idearum +Astra inclinant, non necessitant +Asylum ignorantiae +Atrium mortis +Atrophia nervorum +Auctoritas foris +Auctoritas rei judicatae +Audacter calumniare, semper aliquid haeret +Audentes fortuna juvat +Audiatur et altera pars +Auguror nec me fallit augurium, historias tuas immortales futuras +Aura popularis +Aurea mediocritas +Aures habent, et non audient +Auri sacra fames +Auribus teneo lupum +Aurora borealis +Aurora musis amica est +Аurum nostrum non est aurum vulgi +Aurum potestas est +Auspicia sunt fausta +Auspicium melioris aevi +Aut bene, aut nihil +Aut bibat, aut abeat +Aut Caesar, aut nihil +Aut cum scuto, aut in scuto +Aut deus, aut natura +Aut non tentaris, aut perfice +Aut disce, aut discede +Aut prodesse volunt aut delactare poetae +Aut vincere, aut mori +Ave +Ave, Caesar, morituri te salutant +Ave Maria +Ave ac vale +Ave verum corpus +Avibus bonis +Bacchum Nymphis temperare +Barba crescit caput nescit +Barba non facit philosophum +Barbam video, sed philosophum non video +Barbarus hic ego sum, quia non intelligor ulli +Beata stultica +Beatae plane aures, quae non vocem foris sonantem, sed intus auscultant veritatem docentem +Beati pauperes spiritu +Beati possidentes +Beatudio non est virtutis praemium, sed ipsa virtus +Beatus ille, qui procul negotiis +Bella matribus detestata +Bellum internecivum +Bellum omnium contra omnes +Bene diagnoscitur, bene curatur +Bene misceatur +Bene placito +Bene qui latuit, bene vixit +Bene tritum +Bene valete +Benevole lector +Benevolentiae captande causa +Bestiolae, quae unum tantum diem vivunt +Biblia pauperum +Bibliothecae scriptorum +Bis dat qui cito dat +Bis repetitia placent +Bis vincit qui se vincit in victoria +Bona adventica +Bona dicta +Bona fama divitiis est potior +Bona fide +Bona fides +Bona hereditaria +Bona mente +Bona opinio homini tuttior pecunia est +Bona venia vestra +Bonae fidei possesio +Boni homines +Bonis auspiciis +Bono modo +Bono sensu +Bonum publicum +Bonum vinum lactificat cor hominus +Bonus eventus +Bonus ordo +Bonus pater familias +Bonus ver semper tiro est +Breves vibrantesque sententiae +Brevi manu +Brevis esse laboro, obscurus fio +Bruta fulmina +Cacatum non est pictum +Cadit quaestio +Cadmea victoria +Caedite eos. Novit enim Dominus qui sunt eius +Caelo tonantem credidimus Jovem Regnare +Caelum, non animum mutant, qui trans mare currunt +Caesar ad Rubiconem +Caesar citra Rubiconem +Caesarem licet stantem mori +Caesarem vehis Caesarisque fortunam +Caesar non supra grammaticos +Caetera activitati +Caetera desiderantur +Caetera desunt +Calamitas virtutis occasio +Callida junctura +Calumniare audacter, semper aliquid haeret +Calvitium non est vitium sed prudentiae judicium +Camera clara +Camera lucida +Camera obscura +Camica santa +Candidior lacte +Canina facundia +Canis a non canendo +Cantabit vacuus coram latrone viator +Capitis deminutio +Captatio benevolentiae +Caput atro carbone notatum +Caput mortuum +Caput mundi +Caput orbi +Caritas humani generis +Caritas omnia credit +Carmen famosum +Carmen horrendum +Carmina nulla canam +Carmina morte carent +Caro est qui securis est +Carpe angelum +Carpe diem +Carpent tua poma nepotes +Carthago delenda est +Casta est quam nemo rogavit +Castis omnia casta +Casum sentit dominus +Casus a nullo praestantur +Casus belli +Casus conscietiae +Casus foederis +Casus incurabilis +Catena scientiarum +Causa activa +Causa bibendi +Causa causalis +Causa civilis +Causa criminalis +Causa efficiens +Causa essendi +Causa finalis +Causa finita est +Causa formalis +Causa irae +Causa justa +Causa materialis +Causa naturalis +Causa occasionalis +Causa prima +Causa principalis +Causa privata +Causa proxima, non remota spectatur +Causa sine qua non +Causa sufficiens +Causa sui +Cautio judicatum solvi +Cave canem +Cave hominem unius libri +Cave ne cadas +Caveant consules! +Cedant arma togae +Cedo majori +Censor morum +Certa de causa +Certa viriliter sustine patienter +Cessante causa, cessat effectus +Cessio bonorum +Ceteris paribus +Ceterum censeo +Charta non erubescit +Cibus, onus et virga asino +Circulus in probando +Circulus vitiosus +Citato loco +Citius, altius, fortius! +Cito citissimo +Civiliter mortui +Civis Romanus sum +Civitas Dei +Clara pacta, boni amici +Clari viri +Claris verbis +Classicus scriptor +Classicus testis +Claudite jam rivos, sat prata biberunt +Clausula rebus sic stantibus +Cloaca maxima +Codex chartaceus +Codex manuscriptus +Codex rescriptus +Coeli lumen +Cogita et visa +Cogitationum poenam nemo luit +Cogito ergo sum +Cognata vocabula rebus +Cognatio spiritualis +Coincidencia oppositorum +Collegium musicum +Collegium privatum +Collegium publicum +Colluvies gentium +Columnae Herculis +Commentarius perpetuus +Commodum possessionis +Commodum publicum +Commotio cerebri +Communa bonorem +Communibus annis +Communis opinio +Comoedia togata +Compelle intrate +Compesce mentem +Comple promissum +Compos mentis +Compos sui +Conclamatum est +Concordet sermo cum vitā +Concordia discors +Concordia parvae res crescunt, discordia maximae dilabuntur +Conditio sine qua non +Conditio suspensiva +Confessus pro judicato habetur +Confiteor solum hoc tibi +Consensus facit nuptias +Consensus gentium +Consensus omnium +Consequentia non valet +Consideratis considerandis +Consilio manuque +Consilium abeundi +Consortium omnis vitae +Consuetudo altera natura +Consummatum est! +Consumor aliis inserviendo +Contra bonos mores +Contra Gracchos Tiberim habemus +Contra factum non datur argumentum +Contra jus et fas +Contra tabulas +Contra rationem +Contra contrariis curantur +Contra spem spero +Contra vim mortis non est medicamen in hortis +Contradictio in adjecto +Contradictio in contrarium +Contradictio in re +Contradictio simptomatum +Contraria sunt complementa +Contumacia cumulat poenam +Coram arbitris +Coram hominibus +Coram publico (populo) +Cornu copiae +Corpora non agent nisi soluta +Corpus delicti +Corpus Domini +Corpus juris +Corpus juris civilis (romani) +Corpus simbioticum +Corpus solidum +Corpus vile +Correctis, corrigendis, imprimatur +Corruptio optimi pessima +Corruptissima re publica plurimae leges +Corvus corno oculos non eruit +Crambe repetita +Crassa ignorantia +Crassa Minerva +Credo quia absurdum +Credendo vides +Crescit amor nummi, quantum ipsa pecunia crescit +Crescite, nos qui vivimus, multiplicamini +Crimen laesae majestatis +Crimine ab uno disce omnes +Cui bono? +Cui podest malum? +Cujus regio, ejus lingua +Cujusvis hominis est errare, nullius nisi insipientis in errore perseverare +Culpa fictia +Culpa in eligendo +Culpa in inspiciendo +Culpa lata +Culpa lata dolo camparatur +Culpa lata dolo proxima est +Culpa levis +Culpa poena par esto +Cum commento +Cum Deo +Cum eximia laude +Cum figuris +Cum grano salis +Cum hoc non est propter hoc +Cum moriar, medium solvar et inter opus +Cum notis variorum scriptorum +Cum principia negante non est disputandum +Cum quodam fastidio +Cum res unimum occupavere verba ambiunt +Cum tempore +Cum tot sustineas et tanta negotia solus +Cum vota consultiva +Cuncta supercilio moventis +Cunctando restituit rem +Cupiditas rerum novarum +Cupio omnia, quae vis +Cura te ipsum +Curae leves loquuntur, ingentes stupent +Currente calamo +Curriculum vitae +Cursus honorum +Custodia honesta +Custos morum +Cymini sectores +Damnant quod non intellegunt +Damnatio ad bestias +Damnatio memoriae +Damnatus est +Damnosa quid non imminuit dies? +Damnum emergens +Damoclis gladius +(Timeo) Danaos et dona ferentes +Dat census honores +Dat, donat, dedĭcat (DDD) +Dat veniam corvis, vexat censura columbas +Date obolum Belisario +De capsula totae +De facto +De jure +De gustibus non est disputandum +De lana caprina rixari +De lege ferenda +De lege lata +De lingua stulta incommoda multa +De mare ad mare +De minimis non curat lex +De mortuis aut bene, aut nihil +De mortuis et absentibus nihil nisi bene +De nihilo nihil +De nomine +De novo +De omni re scibili et quibusdam aliis +De omnibus dubito +De possibili et impossibili +De principiis non est disputandum +De profundis +De quo fabula narratur +De rerum natura +De se ipso modifice, de aliis honorifice +De stercore Ennii +De visu et auditu +Decies repetitia placebit +Decipimur specie recti +Debellare superbos +Debes ergo potes +Deductio ad absurdum +Definitio fit per genus et differentiam specificam +Dei gratia +Delegatus non potest delegare +Delicta carnis +Delicta facti permanentis +Delicta facti transeuntis +Delectabile tempus! +Delictum commissionis +Delictum communi juris +Delictum omissionis +Delirium furens +Delirium tremens +Dementia praecox +Dementia senilis +Demonstratio ad oculos +Dente lupus, cornu taurus petit +Dente superbo +Dentibus albis +Deo ignoto +Deos manes placari victimis humanis +Desideria carnis +Desine sperare qui hic intras +Desinit in piscem mulier formosa superne +Destruam et aedificabo +Deus conservat omnia +Deus ex machina +Deus vult +Di meliora +Diagnosis ex juvantibus +Diagnosis ex observatione +Dicendo de cibis dicendum est de moribus +Dicis causa +Dicis gratia +Dictum factum +Dictum sapienti sat est +Dies diem docet +Dies interpellat pro homine +Dies irae +Differentia specifica +Difficile est proprie communia dicere +Difficile est satyram non scribere +Digitus dei est hic! +Dignus est intrare +Dii minorum gentium +Diligentia qualem diligentissimus pater familias abhibet +Diligentia quam im rebus suis +Diluvii testis +Dimidium animae meae +Dimidium facti, qui соерit, habet +Dira necessitas +Dis manibusque sacrum +Disjecta membra +Displicuit nasus tuus +Diurna manu nocturnaquae +Divide et impera +Divinum opus sedare dolorem +Dixi +Dixi et animam levavi +Dixi et animam meam salvavi +Do manus +Do ut des +Do ut facias +Docendo discimus (discitur) +Dolendi modus, timendi non item +Dolus malus +Domi sedet lanam ducit +Domina omnium scientiarum +Dominium bonitarium +Dominus et deus noster sic fieri jubet +Dominus litis +Don gratuit +Donec eris felix, multos numerabis amicos +Donum didacticum +Dramatis personae +Duae res longe sunt difficillimae +Dubia plus torquent mala +Ducunt volentem fata, nolentem trahunt +Dulce est desipere in loco +Dulce et decorum est pro patria mori +Dulce laudari a laudato viro +Dulcis fumus patriae +Dum docemus, discimus +Dum spiro spero +Dum vivimus vivamus +Duo quum faciunt idem, non est idem +Duobus certantibus tertius gaudet +Dura lex sed lex +E pluribus unum +Ea tempestate +Eadem oberrare chorda +Ecce homo +Ecce spectaculum dignum, ad quod respiciat intentus operi suo deus +Ede, bibi, lude +Edictum perpetuum +Edimus ut vivamus, non vivimus ut edamus +Edite, bibite, post mortem nulla voluptas +Effectrix eloquentiae est audientium approbatio +Ego +Ego cogito ergo sum +Ego sum rex Romanus et supra grammaticos +Ego ti intus et in cute novi +Ego versiculos feci, tulit alter honores +Eheu fugaces labuntur anni! +Ei incumbit probatio, qui dicit, non qui negat +Ejus est nolle qui potest velle +Ejusdem farinae +Ejusdem generis +Elegantia juris +Elephanti corio circumtentus est +Eloquentia canina +Emere catullum in sacco +Emunctae naris homo +Ens a se +Ens causa sui +Ens cogitans +Ens rationis +Ens reale +Ens realissimum +Entia metaphysica +Epicuri de grege porcus +Epistola non erubescit +Equo non credite Teucri +Equus Troianus +Ergo +Ergo bibamus +Erit sicut cadaver +Errare humanum est, или Humanum errare est +Errare humanum est sed stultum est in errore perseverare +Eruditio aspera optima est +Est avis in dextra, melior quam quattuor extra +Est deus in nobis +Est modus in rebus +Est quaedam flere voluptas +Esse, vivere, sentire +Et alia +Et cetera +Et fabula partem veri habet +Et fumus patriae dulcis +Et gaudium et solatium in litteris +Et hoc genus omne +Et in Arcadia ego +Et multa alia +Et tu, Brute? +Et premitur ratione animus vincique laborat +Et propter vitam vivendi perdere causas +Et quibusdam aliis +Et semel emissum volat irrevocabile verbum +Etiam periere ruinae +Etiamsi omnes ego non +Eventus docet +Eventus stultorum magister est +Ex abrupto +Ex adverso +Ex aequo +Ex aequo et bono +Ex auditu +Ex cathedra +Ex mero motu +Ex libris +Ex nihilo nihil fit +Ex nunc prout ex tunc +Ex officio +Ex ungue leonem +Exceptio probat regulam in casibus non exceptis +Excitare fluctus in simpulo (см. Буря в стакане) +Excudent alii spirantia mollius aera +Exempli gratia +Experimenta est optima rerum magistra +Experimentum crucis +Extra omnes! +Faber est suae quisque fortunae +Factum est factum +Fac fideli sis fidelis +Facta, non verba +Fallaces sunt rerum species +Fas est et ab hoste doceri +Fatum +Falax species rerum +Feci quod potui, faciant meliora potentes +Fecit +Ferox verbis +Ferro et igni; Igni et ferro +Festina lente +Fiat iustitia, et pereat mundus! +Fiat lux! +Fiat Roma, et ubi illa nunc est? +Fidei defensor +Fidelis et fortis +Finis coronat opus +Finis sanctificat media +Fortes fortuna adiuvat +Forum delicti +Fortis imaginatio generat casum +Fortuna caeca est +Fuimus Troes, fuit Ilium +Furor Teutonicus +Furtum manifestum +Frustra fit per plura quod potest fieri per pauciora +Gaudeamus igitur, juvenes dum sumus! +Genius loci +Gratis +Gutta cavat lapidem +Habeas corpus +Habemus Papam +Hannibal ante portas +Hic bibitur +Heu quam est timendus qui mori tutus putat +Hic locus est ubi mors gaudet succurrere vitae +Hic et nunc +Hic portus salutis +Hic Rhodus, hic salta +Hic sunt dracones +Hic sunt leones +Hoc fac et vinces +Hoc volo, sic jubeo, sit pro ratione voluntas +Hodie mihi, cras tibi +Homo homini lupus est +Homo proponit, sed Deus disponit +Homo Sapiens non urinat in ventum +Homo sum, humani nihil a me alienum puto +Honores mutant mores, sed raro in meliores +Honoris causa +Horribile dictu +Humanum errare est +Ibi semper est victoria, ubi concordia est +Ibi victoria, ubi concordia +Ibidem +Idem per idem +Id est +In bono veritas +Iesus Nazarenus, Rex Iudaeorum +Igni et ferro +Ignoramus et ignorabimus +Ignorantia non excusat +Ignoratio elenchi +Ignorantia non est argumentum +Imago animi vultus est +Imperare sibi maximum imperium est +Imperatorem stantem mori oportet +In absentia +In angustiis amici apparent +In camera +In coena domini +In contumaciam +In corpore +Indignus qui inter mala verba +In dubio pro reo +In flagrante delicto +In foro scientiae +Ingenium mala saepe movent +In infinitum +In hoc signo vinces +Injuria realis +Injuria verbalis +Injuriam faclius fasias guam feras +In memoriam +In nomine Patris, et Filii, et Spiritus Sancti, (amen) +Innocens credit omni verbo +In partem salari +In pricipio erat verbum +In propria persona +In propia causa nemo jundex +In rerum natura +In saecula saeculorum +In silico +In situ +Inter alia +Inter arma silent Musae +Interdum lacriumae pondera vocis habent +In utero +In vacuo +Invia est in medicina via sine lingua latina +Invia virtuti nulla est via +In vino veritas +Inutile terrae pondus +Ipsa se velocitas implicat +In vitro +In vivo +Ipse dixit +Ipso facto +Iura novit curia +Ira furor brevis est +Ira odium generat, concordia nutrit amorem +Irreparabilium (iprepara rabilium) felix oblivio rerum +Is fecit cui prodest +Jamque opus exegi quod nec Jovis ira, nec ignis, nec poterit ferrum, nec edax abolere vetustas +Judex damnatur, cum nocens absolvitur +Juris praecepta sunt haec: honeste vivere, alterum non laedere, suum cuique tribuere +Jus primae noctis +Jus primae occupationis +Jus sanguinis +Jus soli +Jus vitae ac necis +Justitia regnorum fundamentum +Labor omnia vincit +Labor est etiam ipse voluptas +Lassata viris necdum satiata recessit +Laborare est orare +Lectori benevolo salutem, L.B.S. +Legum servi sumus ut liberi esse possimus +Letum non omnia finit +Legio nomen mihi est +Levis est labor omnis amanti +Lex specialis derogat generali +Lex posterior derogat legi priori +Lex superior derogat legi inferiori +Lex talionis +Liberum veto +Libro ultimo +Licentia poetica +Littera scripta manet +Litterae humaniores +Locus regit actum +Lorem ipsum +Longa manus calami +Lege artis +Lucri bonus est odor ex re qualibet +Lupus in fabilus +Lupus non mordet lupum +Lupus pilum mutat, non mentem +Lux in tenebris +Lux ex tenebris +Magni nominis umbra +Magnum opus +Malum discordiae +Malum se ipsum devorat +Manifestum non eget probatione +Maniae infinitae sunt species +Manus manum lavat +Margaritas ante porcos +Matrimonium iustum +Mea culpa +Mea virtute me involvo +Medicus curat, natūra sanat +Medius terminus +Memento mori +Memento vivere +Memento quia pulvis es +Mens sana in corpore sano +Metri causa +Metus, dolor, mors ac formidines +Misericórdia +Modus operandi +Modus vivendi +More majorum +Mortem effugere nemo potest +Multum vinum bibere +Multi multa; Nemo omnia novit +Multa paucis +Mutatis mutandibus +Nam vitiis nemo sine nascitur +Natura abhorret vacuum +Naturalia non sunt turpia +Navigare necesse est, vivere non est necesse +Naviget, haec summa est +Nec gemino bellum Trojanum orditur ab ovo +Nec nostri saeculi est +Nec Deus intersit +Nec sutor ultra crepidam +Nemo debet bis puniri pro uno delicto +Nemo debet esse judex in propria causa +Nemo me impune lacessit +Nemo omnia potest scire +Nemo solus satis sapit +Ne sutor supra crepidam +Nihil admirari +Nihil habeo, nihil timeo +Nihil habeo, nihil curo +Nihil habenti nihil deest +Nihil verum est licet omnia +Nil aliud scit necessitas quam vincere +Nil inultum remanebit +Nil sancti +Nil satis nisi optimum +Nolens volens +Nomen est omen +Nomen Nescio +Nomina sunt odiosa +Non bis in idem +Non curatur, qui curat +Non moritura +Non olet (см. Деньги не пахнут) +Non progredi est regredi +Non rex est lex, sed lex est rex +Non scholae, sed vitae discimus +Non tam praeclarum est scire Latine, quam turpe nescire +Nosce te ipsum +Nota bene +Novus ordo seclorum +Nullum crimen sine poena, nulla poena sine lege, nullum crimen sine poena legali +Nusquam est qui ubique est +Occasio receptus difficiles habet +Oderint, dum metuant +Odi et amo +Omnia homini, dum vivit, speranda sunt +Omne vivum ex ovo +Omnes vulnerant, ultima necat +Omnia mea mecum porto +Omnia mutantur, nihil interit +Omnia orta cadunt +Omnia praeclara rara +Omnia vincit amor et nos cedamus amori +Omnis homo mendax +Omnis ars imitatio est naturae +Omnium consensu +Ora et labora +Orbis terrarum +Ordo ab chao +O sancta simplicitas +O tempora, o mores! +Otia dant vitia +Otium post negotium +Pacta sunt servanda +Panem et circenses +Pater noster +Pax optima rerum est +Pecuniae oboediunt omnia +Per aspera ad astra +Per Iovem +Periculum in mora +Perpetuum mobile +Per se +Persona grata +Persona non grata +Persona suspecta +Personae dramatis +Pes sic tendatur ne lodix protereatur +Petitio principii +Pictoribus atque poetis +Pie Jesu Domine, dona eis requiem +Plus ultra +Poëma +Poëtae nascuntur, oratōres fiunt +Porta itineri longissima +Post coitum omne animal triste est +Post factum +Post hoc ergo propter hoc +Post hoc non est propter hoc +Post mortem +Post prandium stabis, post cenam ambulabis +Post scriptum +Post tenebras lux +Potius sero quam nunquam +Praemonitus praemunitus +Primo +Primum non nocere +Primus inter pares +Pro forma +Pro pace +Pro patria mori +Pro poena +Pro tempore +Probatuum est +Procul negotiis +Quae medicamenta non sanat, ferrum sanat; Quae ferrum non sanat, ignis sanat. Quae vero ignis non sanat, insanabilia reputari oportet +Qualis artifex pereo! +Quantum satis +Qui nimium probat, nihil probat. +Qui non laborat, non manducet +Qui non proficit deficit. +Qui pro quo +Qui scribit, bis legit +Qui seminat mala, metet mala +Qui sine pecato est? +Qui ventum seminat, turbinem metet +Quid dubitas, ne faceris +Quid est veritas? +Quid pro quo +Quid timeas? Caesarem vehis Caesarisque fortunam +Quis? Quid? Ubi? Quibus auxiliis? Cur? Quomodo? Quando? +Quis custodiet ipsos custodes? +Quo vadis? +Quod deus bene vertat +Quod erat demonstrandum +Quod gratis asseritur, gratis negatur +Quod licet Jovi, non licet bovi +Quod scripsi, scripsi +Quot capita, tot sententiae +Quo usque pro Roma ibis? +Radices litterarum amarae sunt, fructus dulces +Rara est [adeo] concordia formae atque pudicitiae +Rebus sic stantibus +Reddite quae sunt Caesaris Caesari, et quae sunt Dei Deo +Reductio ad absurdum +Regula certa datur: bene qui stat, non moveatur +Repetitio est mater studiorum +Requiescat in pace +Requiem aeternam dona eis, Domine +Res Publica +Respice finem +Respondeat superior +Reti ventos venari +Rex regnat, sed non gubernat +Roma locuta, causa finita +Salus populi suprema lex +Sancta sanctorum +Sapere aude +Sapienti sat +Scientia potentia est +Scire leges non hoc est verba earum tenere, sed vim ac potestatem +Secundo +Sed alia tempora +Sed semel insanivimus omnes +Sede Vacante +Sedia Gestatoria +Sed non quo ad hanc +Semper idem +Semper in motu +Semper fidelis +Senatus bestia, senatores boni viri +Senatus Populusque Romanus (S.P.Q.R) +Sententia absolutoria +Sero venientibus ossa +Serva me, servanto te +Servus Servorum Dei +Si parva licet componere magnis +Si vales, bene est; Ego valeo (SVBEEV) +Si vis amari, ama! +Si vis pacem, para bellum +Si vis vincere, disce pati +Sic! +Sic itur ad astra +Sic transit gloria mundi +Sic semper tyrannis +Silentium est aurum +Silentium videtur confessio +Similia similibus curantur +Sine causa +Sine cura +Sine ira et studiо +Sit tibi terra levis +Sitio +Sola Scriptura +Soli Deo gloria +Sol lucet omnibus +Solum debilis mori debent +Solus cum sola, in loco remoto, non cogitabuntur orare «Pater noster» +Status quo +Sub rosa +Sudore et sanguine +Sui generis +Suis quaeque temporibus +Summa summarum +Supra nos Fortuna negotia curat +Supremum vale +Sursum corda +Suum cuique +Tabula rasa +Tacito consensu +Tale quale +Te amo est verum +Tempora mutantur et noc mutamur in illis +Tempus edax rerum +Tempus fugit +Tempora labuntur, tacitisque senescimus annis +Tertium non datur +Terra incognita +Terra nullius +Testis unus +Timeo Danaos et dona ferentes +Toties quoties +Totum revolutum +Totus floreo +Trahit sua quemque voluptas +Tres faciunt collegium +Tres muliers faciunt nundias +Ubi bene, ibi patria +Ubi concordia, ibi victoria +Ubi culpa est ibi poena subbesse debet +Ubi nil vales, ibi nil velis +Ubi mel, ibi apes +Ubi mel, ibi fel +Ubi pus, ibi incisio +Ultima ratio +Ultra posse nemo obligatur +Una voce +Unum et idem +Unus pro omnibus, omnes pro uno +Urbi et Orbi +Usus est optimus magister +Utile dulce miscere +Ut tensio sic vis +Ut desint vires, tamen est laudanda voluntas +Uti, non abuti +Vale +Vade retro, Satana +Vae victis +Vanitas vanitatum et omnia vanitas +Varietas delectat +Veni, vidi, vici +Verba magistri +Verba volant, scripta manent +Verbatim +Verte +Verum est quod pro salute fit mendacium +Veto +Versus +Via est vita +Viam supervadet vadens +Vice versa +Vide licet (Vide licet) +Videre majus quiddam +Vince in bono malum +Vinum +Vinum verba ministrat +Viribus unitis +Vis unita fortior +Vita brevis ars longa +Vita sine libertate, nihil +Vita sine litteris mors est +Vitae sal +Vivenda +Vivere est cogitare +Vi veri universum (veniversum) vivus vici +Volens nolens +Volo ergo sum +Volo, non valeo +Votum separatum +Vox populi vox Dei diff --git a/data/sample_config.json b/data/sample_config.json index ba19637..2396a08 100644 --- a/data/sample_config.json +++ b/data/sample_config.json @@ -1,5 +1,6 @@ { "user" : "nobody", + "debug_log" : "/var/log/aleesa-telegram-bot/debug.log", "telegrambot" : { "name" : "mybot", "tname" : "@my_bot", @@ -12,5 +13,7 @@ "cachedata": "data/cache/openweathermap.Id-Data.db", "appid": "get_it_on_openweathermap.org" }, - "debug_log" : "/var/log/aleesa-telegram-bot/debug.log" + "lat" : { + "brain": "data/lat/lat.sqlite" + } } diff --git a/lib/lat.pm b/lib/lat.pm new file mode 100644 index 0000000..48cec25 --- /dev/null +++ b/lib/lat.pm @@ -0,0 +1,76 @@ +package lat; +# famous latin phases taken from https://ru.wikipedia.org/wiki/Список_крылатых_латинских_выражений + +use 5.018; +use strict; +use warnings; +use utf8; +use open qw(:std :utf8); +use English qw( -no_match_vars ); + +use vars qw/$VERSION/; +use Exporter qw(import); +our @EXPORT_OK = qw(train latAnswer); + +$VERSION = '1.0'; + +use Hailo; +use File::Basename qw(dirname); +use File::Path qw(mkpath); +use conf qw(loadConf); +use botlib qw(logger); + +my $c = loadConf(); +my $brain = $c->{lat}->{brain}; + +# swallow phrase and return answer +sub train () { + my $braindir = dirname ($brain); + + unless (-d $braindir) { + mkpath ($braindir) or do { + logger "Unable to create $braindir: $OS_ERROR"; + exit 1; + }; + } + + my $lat = Hailo->new ( + brain => $brain, + # in our case mean amount of words in phase is 3 + order => 2 + ); + + $lat->train('data/phrases.txt'); + my ($tokens, $expressions) = ($lat->stats())[0,1]; + printf "Total tokens: %s\nTotal expressins: %s\n", $tokens, $expressions; + $lat->save(); + return; +} + +# just return answer +sub latAnswer () { + my $braindir = dirname ($brain); + + unless (-d $braindir) { + logger ("No lat module data: $braindir is absent! Train lat first."); + return ''; + } + + unless (-f $brain) { + logger ("No lat module data: $brain is absent! Train lat first."); + return ''; + } + + my $lat = Hailo->new ( + brain => $brain, + # in our case mean amount of words in phase is 3 + order => 2, + save_on_exit => 0 + ); + + return $lat->reply(); +} + +1; + +# vim: ft=perl noet ai ts=4 sw=4 sts=4: diff --git a/lib/telegrambot.pm b/lib/telegrambot.pm index 79992ce..68a7fe4 100644 --- a/lib/telegrambot.pm +++ b/lib/telegrambot.pm @@ -16,6 +16,7 @@ use Mojo::Base 'Telegram::Bot::Brain'; use conf qw(loadConf); use botlib qw(weather logger trim randomCommonPhrase); use telegramlib qw(getChat getChatMember sendChatAction visavi); +use lat qw(latAnswer); use Exporter qw(import); our @EXPORT_OK = qw(run_telegrambot); @@ -211,6 +212,8 @@ sub __on_msg { } elsif (substr ($text, 1, 2) eq 'w ' || substr ($text, 1, 2) eq 'п ') { my $city = substr ($text, 2); $reply = weather ($city); + } elsif ((length ($text) == 4) && (substr ($text, 1, 3) eq 'lat' || substr ($text, 1, 2) eq 'лат')) { + $reply = latAnswer(); } else { $reply = 'Чего?'; } @@ -312,6 +315,7 @@ sub __on_msg { !help | !помощь - список команд !w город | !п город - погода в указанном городе !ping | !пинг - попинговать бота +!lat | !лат - сгенерировать фразу из крылатых латинских выражений ``` Но на самом деле я бот больше для общения, чем для исполнения команд. Поговоришь со мной? @@ -331,6 +335,8 @@ MYHELP } elsif (substr ($text, 1, 2) eq 'w ' || substr ($text, 1, 2) eq 'п ') { my $city = substr ($text, 3); $reply = weather ($city); + } elsif (length ($text) == 4 && (substr ($text, 1, 3) eq 'lat' || substr ($text, 1, 3) eq 'лат')) { + $reply = latAnswer(); } } elsif ( ($text eq $qname) or