• Как из списка списков получить такой результат?

    Как вариант
    list_of_lists = [['1', '2', '3'],['4', '5', '6'],['7', '8', '9']]
    
    # обход элементов каждого вложенного списка и сохранение их в новый список
    new_list = []
    for i in range(len(list_of_lists[0])):
        for lst in list_of_lists:
            new_list.append(lst[i])
    
    # транспонирование списка списков
    transposed_list = list(zip(*list_of_lists))
    
    # преобразование каждого кортежа в строку и объединение элементов с помощью пробела
    result = '\n'.join([' '.join(t) for t in transposed_list])
    
    print(result)
    Ответ написан
    Комментировать
  • Как получить содержимое li > span?

    Ты почти сам все сделал)
    $('.country_list_item').on('click', event => {
      alert($(event.currentTarget).children('.phone-code').text())
    })
    Ответ написан
  • Как сделать выборку из 2-ух таблиц и отсортировать по 3-ей?

    Что то вроде этого?
    SELECT table1.id, table1.pagetitle, table2.*
    FROM table1
    JOIN table2 ON table1.id = table2.id
    JOIN table3 ON table2.id = table3.id
    ORDER BY table3.rating DESC;
    Ответ написан
    Комментировать
  • Как подождать N секунд внутри async функции?

    Можно использовать await в сочетании с setTimeout

    Например:
    async function wait(ms) {
      return new Promise(resolve => setTimeout(resolve, ms));
    }
    
    async function Looooool(){
      console.log("подождите 5 секунд");
      await wait(5000);
      console.log("прошло 5 секунд");
    }
    Ответ написан
    Комментировать
  • Как сделать легкий параллакс при скролле?

    Вот пример:

    Ответ написан
    Комментировать
  • Как добавить исключение для mod_pagespeed в файле htaccess?

    Можно попробовать так
    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} !mod_pagespeed
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    Это условие будет проверять значение переменной HTTP_USER_AGENT, и если оно не содержит mod_pagespeed, то будет выполняться редирект с http на https.
    Ответ написан
  • Как сделать, чтобы змея не образовала линию?

    Чтобы змея не образовала линию, необходимо удалять квадраты, которые занимает змея, перед тем, как нарисовать новые.
    Это можно сделать с помощью метода clearRect контекста canvas, который удаляет определенную область.
    Как вариант, можно добавить строку ctx.clearRect(0, 0, canvas.width, canvas.height) перед строкой ctx.fillRect(px,py,box,box) в функции Snake().
    Ответ написан
    Комментировать
  • Как заставить бота считать сколько сделал он рассылок по пользователям?

    Что то вроде этого?
    Попробуй:
    count = 0
    def text(message):
        global count
        conn = sqlite3.connect('users.db')
        cursor = conn.cursor()
        cursor.execute("SELECT id FROM login_id")
        results = cursor.fetchall()
        for result in results:
            try:
                bot.send_message(result[0], message.text)
                count += 1
            except:
                pass
        bot.send_message(message.chat.id, 'Рассылка ' + str(count))


    Бот должен отправить сообщение админу (рассылка "число") после рассылки.
    Ответ написан
    3 комментария
  • Телеграмм БОТ граббер на python как доработать?

    Думаю Вам нужно что то вроде этого

    import shelve
    import time
    import re
    from pyrogram import Client, filters
    from pyrogram.errors import RPCError
    from pyrogram.types import Message
    from bs4 import BeautifulSoup
    from config import API_ID, API_HASH, PHONE_NUMBER, PUBLIC_FROM, PUBLIC_TO
    
    db = shelve.open('data.db', writeback=True)
    bot = Client('RepBot', API_ID, API_HASH, phone_number=PHONE_NUMBER)
    local_time = time.localtime()
    print("ReprBot - Запущен", local_time.tm_hour, ":", local_time.tm_min)
    
    # Create a set to store seen message ids
    seen_messages = set()
    
    def save_post(message: Message) -> str:
        post_id = f'{message.chat.id}_{message.message_id}'
        db[post_id] = {
            'username': message.chat.username,
            'message_id': message.message_id
        }
        return post_id
    
    def remove_links(text: str) -> str:
        soup = BeautifulSoup(text, 'lxml')
        for link in soup.find_all('a'):
            link.decompose()
        return soup.get_text()
    
    @bot.on_message(filters.chat(PUBLIC_FROM))
    def new_channel_post(_: Client, msg: Message) -> None:
        if msg.message_id in seen_messages:
            return
        else:
            seen_messages.add(msg.message_id)
        post_id = save_post(msg)
        local_time = time.localtime()
        print(f'Новый пост в группе({msg.sender_chat.username or msg.sender_chat.id})' ' Время:', local_time.tm_hour, ":", local_time.tm_min, ":", local_time.tm_sec)
        text = msg.text or msg.caption
        # Remove links from text
        text = remove_links(text)
        text = re.sub(r'https?:\/\/\S+', '', text)
        try:
            bot.send_message(chat_id=PUBLIC_TO, text=text)
        except RPCError:
            print('Не удалось переслать пост:', post_id)
    
    if __name__ == '__main__':
        bot.run()

    Этот код изменяет исходный скрипт путем:

    1. Добавление набора под названием seen_messages для хранения идентификаторов сообщений, которые уже были просмотрены и размещены повторно.

    2. Добавление проверки в начале функции new_channel_post, чтобы увидеть, находится ли идентификатор сообщения текущей записи в наборе seen_messages.
    Если это так, функция возвращает и не перепечатывает сообщение.
    Если его нет в наборе, идентификатор сообщения добавляется в набор, и процесс повторной отправки продолжается.

    3. Добавление функции remove_links(text: str) -> str, которая использует библиотеку BeautifulSoup для анализа текста и удаления из него всех ссылок.

    4. Использование функции remove_links для удаления ссылок из текста или заголовка поста перед репостом.

    5. Использование модуля re для удаления всех оставшихся ссылок в тексте перед репостом.

    Это только пример кода и логики, здесь могут быть ошибки, проверьте все и в случае чего переделайте под свои нужды
    Ответ написан
  • Как получить значение reference поля в Firebase?

    Чтобы получить значение ref поля в Firebase используйте функцию .once('value') или .on('value') .
    Например:
    var ref = firebase.database().ref("books/" + bookId + "/status");
    ref.once('value').then(function(snapshot) {
      var status = snapshot.val();
      console.log(status.name);
    });

    Это позволит вам получить доступ к значению поля name в статусе.

    Если вы хотите получить доступ к данным из другой таблицы, например статусов, Вы можете использовать метод .child() для навигации по дереву данных.
    Например:
    var bookRef = firebase.database().ref("books/" + bookId);
    bookRef.once('value').then(function(snapshot) {
      var book = snapshot.val();
      var statusRef = bookRef.child("status");
      statusRef.once('value').then(function(snapshot) {
          var status = snapshot.val();
          console.log(status.name);
      });
    });

    Это даст вам доступ к данным из таблицы со статусами и вы можете получить значение поля name.
    Ответ написан
    8 комментариев
  • Почему трансформация scaleY не срабатывает в обратную сторону?

    В приведенном коде, стили для элемента в закрытом состоянии не определены, и он остаётся невидимым (scaleY(0)) и не имеет возможности вернуться к первоначальному состоянию.

    Вам следует добавить соответствующий класс для элемента в закрытом состоянии и задать ему нужные свойства и значения.

    Например:
    &.submenu-closed{
        transform: scaleY(0);
        max-height: 0;
    }
    Ответ написан
  • Как создать лямбда функцию?

    В Node.js можно создать лямбда-функцию, которая удаляет сертификат EC2, используя библиотеку AWS SDK. Пример такой функции может выглядеть примерно так:

    const AWS = require('aws-sdk');
    
    exports.handler = async (event) => {
        const acm = new AWS.ACM({apiVersion: '2015-12-08'});
        const { certificateArn } = event;
        const params = {
            CertificateArn: certificateArn
        };
        try {
            await acm.deleteCertificate(params).promise();
            return { statusCode: 200, body: `Certificate ${certificateArn} was deleted` };
        } catch (err) {
            return { statusCode: 400, body: `Error: ${err.stack}` };
        }
    };
    Ответ написан
    8 комментариев
  • Заглушка вместо неподгруженной картинки?

    Только если так:

    <div class="image-container">
      <img src="image.jpg" alt="Image" onerror="this.src='https://komfort-pluss.ru/wp-content/uploads/2020/01/net-izobrazheniya.jpg'">
      <img src="image1.jpg" alt="Image" onerror="this.src='https://komfort-pluss.ru/wp-content/uploads/2020/01/net-izobrazheniya.jpg'">
      <img src="https://x-files.site/images/articles/96/1/7/sibsup_t3.jpg" alt="Image" onerror="this.src='https://komfort-pluss.ru/wp-content/uploads/2020/01/net-izobrazheniya.jpg'">
    </div>
    
    <style>
    .image-container {
      position: relative;
    }
    
    .image-container img {
      width: 200px;
      height: auto;
    }
    
    .image-container::before {
      /* content: "Изображение не загрузилось"; */
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      color: #000;
      font-size: 18px;
      font-weight: bold;
      text-align: center;
    }
    </style>


    Иначе при помощи JS
    Ответ написан
    Комментировать