1. Python / Говнокод #27499

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 06 Июля 2021

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

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

      Ситуён:

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

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

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

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

      В третьих там для люнипса есть золупа по имени gunicorn, а она юзает системные вызовы. Это надо, как я понимаю, чтобы у меня запросы от nginx распределялись на несколько инстансов прилаги (видимо по числу камней, рекомендуется num of CPU * 2 + 1). Ну вот есть какая-то альтернатива которая и на винде работает, waitress. Вопрос: как мне понять, надо ли оно мне, и какое каноническое решение под виндой? Хайлоада какого-то не ожидается, но надо продуктовое качество обеспечить. А то щас там эксепшон какой-нибудь упадёт, и пока в помершеле не нажмёшь Ctrl+C вообще прилага никаких других запросов обрабатывать не будет.
      Ответить
      • реквестирую макаку
        Ответить
        • Макака сгнил. Теперь от его имени срёт доктор Смегма.

          Список некоторых сгнивших можно найти на
          https://github.com/1024--/govnokod.ru-userscripts/blob/master/nosmegma.user.js
          Ответить
          • "26293": "neTyx_npoTKHyTbIu",
                "67285": "MAKAKA",
                "67286": "MAPTbIwKA",
                "67289": "6a6yuH",
                "67299": "ru66oH4uk",
                "67306": "6oHo6o",


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

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

                А если ящик в «десятиминутной почте» или в сервисе, который загнулся, то и пароль сменить нельзя...
                Ответить
              • >гиенну
                https://tinyurl.com/rwvceckz
                Ответить
                • Кстати, раньше гиен считали гермафродитами. Оказалось, что они ложные гермафродиты: у самок клиторомегалия из-за повышенного уровня тестостерона.

                  https://ru.wikipedia.org/wiki/Клиторомегалия

                  Такие дела.
                  Ответить
      • > зокащик долбоёб и гнида, поэтому у него все стенды на 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/
        Ответить
        • > ssh под винду есть

          Уж проще сразу поставить «MSYS2». Тогда и «bash» поставишь, и «git», и «ssh» и всякую гнутую питушню.

          http://repo.msys2.org/mingw/x86_64/
          http://repo.msys2.org/msys/x86_64/
          Ответить
          • Как-то это всё не звучит как продакшен-реди

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

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