Змея / Говнокод #27499 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
import logging
import requests
from .. import loader, utils

logger = logging.getLogger(__name__)

def register(cb):
    cb(TagallMod())

def chunks(lst, n):
    for i in range(0, len(lst), n):
        yield lst[i:i + n]

class TagallMod(loader.Module):

    strings = {"name": "Tagall"}

    def __init__(self):
        self.config = loader.ModuleConfig("DEFAULT_MENTION_MESSAGE", "Привет", "Default message of mentions")
        self.name = self.strings["name"]

    async def client_ready(self, client, db):
        self.client = client

    async def tagallcmd(self, message):
        arg = utils.get_args_raw(message)

        logger.error(message)
        notifies = []
        async for user in self.client.iter_participants(message.to_id):
            notifies.append("<a href=\"tg://user?id="+ str(user.id) +"\">\u206c\u206f</a>")
        chunkss = list(chunks(notifies, 10))
        logger.error(chunkss)
        await message.delete()
        for chunk in chunkss:
            await self.client.send_message(message.to_id, (self.config["DEFAULT_MENTION_MESSAGE"] if not arg else arg) + '\u206c\u206f'.join(chunk))

Запостил: tars777 tars777, (Updated )

Комментарии (20) RSS

  • когда вижу такое "def __init__(self)" всегда хочу кого-то ударить
    Ответить
  • Есть знатоки питонячьего стека под богомерзкую винду?

    Ситуён:

    зокащик долбоёб и гнида, поэтому у него все стенды на Windows Server 2012 R2. Ставить на них виртуалки я не хочу, да и ресурсы для этого так себе. Из этого следует, что докера не будет, электричество кончилось. И убунты встроенной в шинду тоже.

    Админить винду я вообще не очень умею, ну допустим. Приложение на Django + проксирующий nginx + postgres.
    Ну стек я поставил, через помершел как-то это всё запускается. Вопрос: а как сделать кошерно?

    Во-первых как принято на винде всё это стартовать. Не держать же запущеный помершел с прилагой по rdp. Какой-то воркер должен быть или что, служба? Как называется под пистон джанго гёрлз?

    Во-вторых как нормально деплоить обновления кода? Помершел-скрипт что ли писать? Ни баша, ни ссш, хуйня какая-то? Должны же быть готовые решения.

    В третьих там для люнипса есть золупа по имени gunicorn, а она юзает системные вызовы. Это надо, как я понимаю, чтобы у меня запросы от nginx распределялись на несколько инстансов прилаги (видимо по числу камней, рекомендуется num of CPU * 2 + 1). Ну вот есть какая-то альтернатива которая и на винде работает, waitress. Вопрос: как мне понять, надо ли оно мне, и какое каноническое решение под виндой? Хайлоада какого-то не ожидается, но надо продуктовое качество обеспечить. А то щас там эксепшон какой-нибудь упадёт, и пока в помершеле не нажмёшь Ctrl+C вообще прилага никаких других запросов обрабатывать не будет.
    Ответить
        • "26293": "neTyx_npoTKHyTbIu",
              "67285": "MAKAKA",
              "67286": "MAPTbIwKA",
              "67289": "6a6yuH",
              "67299": "ru66oH4uk",
              "67306": "6oHo6o",


          Целый пласт жизни псу под хвост
          Ответить
          • > Целый пласт жизни псу под хвост

            Кальвинисты были правы, что судьба юзера предрешена. Если у него дурацкий пароль и почта на мейлинаторе, то боженька его рано или поздно накажет и низвергнет в гиенну смегменную.
            Ответить
            • На «Мейлинаторе» ящики можно использовать повторно. Если адрес ящика тривиально не выводится из логина на «Говнокоде», можно сменить пароль, и с этой учётки больше срать не будут.

              А если ящик в «десятиминутной почте» или в сервисе, который загнулся, то и пароль сменить нельзя...
              Ответить
    • > зокащик долбоёб и гнида, поэтому у него все стенды на Windows Server 2012 R2.

      Вспомнилась древняя цитата с ололо
      https://bash.im/quote/393961
      <qip> приходят, садяццо, там здоровое помещение, и стоит чувак с навесным экраном, включается проектор, появляется логотип загрузки Win XP, больше половины зала поднялось и свалило

      Думаю понятно что делать.
      Ответить
    • > а как сделать кошерно?
      На винде нужно ставить сервисом.

      Проще всего запустить апаче с ``mod_wsgi``. Если ты хочешь ``nginx`` и сервер приложений (``waitress``), то попробуй этот свой ``waitress`` запустить сервисом:

      https://www.devdungeon.com/content/run-python-wsgi-web-app-waitress#toc-11



      >Во-вторых как нормально деплоить обновления кода?
      А на линуксе ты бы как деплоил?

      > Ни баша, ни ссш, хуйня какая-то?
      ssh под винду есть
      https://docs.microsoft.com/ru-ru/windows-server/administration/openssh/openssh_install_firstuse

      зачем тебе именно баш?

      Алсо, Powershell умеет ходить через WinRM с других серверов, но наружу я бы его не открывал
      https://habr.com/ru/post/278691/

      >В третьих
      А неужели и с запуском при сервисе так? по идее-то она должна знать, что у нее tty нет.



      зы: Апаче на винде проще тем, что он уже идет с сервисом, и что не нужно отдельно ставить сервер приложений

      проще сделать вот так и не ибца с waitress+nginx.
      https://habr.com/ru/post/523842/
      Ответить
        • Как-то это всё не звучит как продакшен-реди

          Впрочем, джанга на винде тоже так не звучит. на винде нужно в hyper-v запустить линукс, и не ибаца
          Ответить
          • Да, можно наткнуться на неприятности. У меня «grep» не ищет кириллицу, если я его запускаю напрямую из «cmd.exe», а если запущу из-под «bash», то ищет.
            Ответить
        • Но по уму конечно нужно требовать с заказчика hyper-v. Если его админ умеет только винду, так пусть её и админит, а тебе создаст виртуалку на ней
          Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8