التكرار الثاني لتسودر. روبوت الدردشة لتيارات Tsoding.
ضع في اعتبارك أننا لا نستخدم أي حزم Haskell من nixpkgs. من المفترض أن يتم تنزيل جميع التبعيات بواسطة cabal أو المكدس أثناء الإنشاء.
$ nix-shell
$ cabal sandbox init
$ cabal install happy-1.19.9
$ cabal install --only-dependencies --enable-tests
$ cabal build
$ cabal test
$ cabal run HyperNerd secret.ini database.db
راجع الإصدارات المحلية على طراز Nix لمزيد من المعلومات
$ nix-shell
$ cabal v2-build
$ cabal v2-test
$ cabal v2-run exe:HyperNerd secret.ini database.db
التبعيات الأصلية:
$ stack build
$ stack exec hlint .
$ stack exec HyperNerd secret.ini database.db
يتكون الملف secret.ini
من ثلاثة أقسام اختيارية.
[twitch]
nick = HyperNerd
channel = Tsoding
password =
clientId =
owner =
[discord]
authToken =
guild =
channels = [, , ... ]
[github]
apiKey =
اسم | وصف |
---|---|
nick | اللقب للبوت. |
owner | صاحب البوت. سيتعرف الروبوت على هذا الاسم باعتباره مرجعًا بغض النظر عن كونه نموذجًا أو مذيعًا. |
password | تم إنشاء كلمة المرور بواسطة https://twitchapps.com/tmi/. oauth: البادئة هي جزء من كلمة المرور. |
channel | القناة التي سينضم إليها الروبوت عند بدء التشغيل. |
clientId | معرف العميل لمكالمات Twitch API. |
اسم | وصف |
---|---|
authToken | رمز المصادقة للروبوت: https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token |
guild | معرف النقابة التي يستمع إليها الروبوت |
channels | قائمة معرفات القنوات التي يستمع إليها الروبوت (يتم تحليل القائمة كقائمة هاسكل: [ ) |
اسم | وصف |
---|---|
apiToken | https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line |
مع الأسرار الموجودة في المجلد المحدد في docker-compose.yaml
،
$ docker-compose up --build
$ docker build --target app -t hypernerd .
$ mkdir hypernerd-state
$ cp secret.ini hypernerd-state
$ docker create -v /absolute/path/to/hypernerd-state/:/tmp/hypernerd/
--name hypernerd-bot hypernerd
$ docker start -a hypernerd-bot
$ docker stop hypernerd-bot
$ docker exec -it hypernerd-bot sh
لتحفيز استجابة سلسلة ماركوف، ما عليك سوى ذكر الروبوت في الدردشة.
نموذج Markov هو ملف CSV يتم إنشاؤه من السجلات الموجودة في ملف قاعدة بيانات الروبوت باستخدام الأداة المساعدة Markov
CLI:
$ cabal exec Markov train database.db markov.csv
سينتج عن هذا الأمر ملف markov.csv
.
$ cabal exec HyperNerd secret.ini database.db markov.csv
لا يتم تحديث ملف markov.csv
تلقائيًا. لتحديث الملف بالسجلات الجديدة، عليك تشغيل الأداة المساعدة Markov
CLI مرة أخرى.
يمكنك تعيين اسم مستعار للأوامر لأي أمر:
!test
test
!addalias foo test
!foo
test
تتم "إعادة توجيه" الأسماء المستعارة بمستوى واحد فقط مما يعني أن الأسماء المستعارة المتعدية غير مدعومة:
!addalias bar foo
!bar
*nothing, because !bar is redirected to !foo, but further redirect from !foo to !test does not happen*
الدافع لعدم دعم الأسماء المستعارة المتعدية هو ما يلي:
!addquote
--إضافة اقتباس إلى قاعدة بيانات الأسعار. متاح فقط للغواصات وتعديل.!delquote
--حذف الاقتباس حسب المعرف. متاح فقط لTsoding.!quote [quote-id]
--استعلام عن اقتباس من قاعدة بيانات الأسعار. يمكنك دعم عملي عبر