Account created on 4 December 2008, over 15 years ago
#

Recent comments

🇷🇺Russia APolitsin

move to Drupal.org project ownership (2209259)

🇷🇺Russia APolitsin

And how long do you have to wait for a response to a ticket in this section before moving it to Drupal.org/project/ownership ?

🇷🇺Russia APolitsin

💥 Friends!
🎉🎉🎉🎉 10 years to this wonderful issue! 🎉🎉🎉🎉
🔥 Created 2 Apr 2014 at 00:19 MSK

Congratulations to everyone on this important event, especially parent #1 @exlin

☀️ Good day, everyone.

🇷🇺Russia APolitsin

Thanks @geek-merlin

```sh
drush php:eval "\Drupal\Core\Database\Database::getConnection('default', NULL)->query('vacuum;');"
```

🇷🇺Russia APolitsin

давайте закроем?
мол работает как нужно и статус совсем не критикал

🇷🇺Russia APolitsin

Вроде как этот момент поправился в рамках других работ по модулю.
Если проблема сохранилась - маякни.

🇷🇺Russia APolitsin

мой любимый тикет на друпалорге

🇷🇺Russia APolitsin

Переписано на `social_auth` 4+
Убрана зависимость от внешних библиотек

🇷🇺Russia APolitsin

Вот ещё про drupal10 в этом модуле

Twig\Error\SyntaxError: Unknown "spaceless" tag. in Twig\Parser->subparse() (line 15 of modules/contrib/improvements/templates/select.html.twig).
Twig\Parser->parse(Object) (Line: 491)
Twig\Environment->parse(Object) (Line: 519)
Twig\Environment->compileSource(Object) (Line: 132)
Drupal\Core\Template\TwigEnvironment->compileSource(Object) (Line: 351)
Twig\Environment->loadTemplate('__TwigTemplate_41608c58a2b069ed43068b1916686f5b', 'modules/contrib/improvements/templates/select.html.twig') (Line: 312)
Twig\Environment->load('modules/contrib/improvements/templates/select.html.twig') (Line: 53)
twig_render_template('modules/contrib/improvements/templates/select.html.twig', Array) (Line: 372)
Drupal\Core\Theme\ThemeManager->render('select', Array) (Line: 422)
🇷🇺Russia APolitsin

Для сохранения состояния мы внутри используем сервис redis.
А на случай когда этого сервиса нет, там была реализован функционал
хранения состояния в сущности чата, но толком это никто не тестировал.

Вот где идёт попытка сохранения состояния:
https://git.drupalcode.org/project/telega/-/blob/8.x-1.x/src/Utility/Red...

Так оно подключается в юзер-команду:
https://git.drupalcode.org/project/telega/-/blob/8.x-1.x/src/Utility/Use...

Сейчас в модуль добавляется большой кусок функционала по интеграции с chatwoot, поэтому текущий момент быстро поправить не смогу. До майских планирую успеть выкатить новую версию, там и этот момент смогу пофиксить.

---
стартегически если планируешь работать с состоянием лучше работать с редисом, может настройки сразу добавим в модуль.

services:
  redis:
    class: Drupal\redis\Service\RedisSrvice


namespace Drupal\redis\Service;

/**
 * GuzzleSrvice service.
 */
class RedisSrvice {

  /**
   * The config factory.
   *
   * @var \Redis
   */
  protected $redis;

  /**
   * Constructs a Guzzle.
   */
  public function __construct() {
    $redis = new \Redis();
    $redis->connect('тутадрес сервера', 6379);
    try {
      $redis->auth('пароль');
      if ($redis->ping()) {
        // dsm("PONG: " . $redis->get("foo"));.
      }
      // dsm($redis->keys('*'));.
    }
    catch (\RedisException $e) {

    }
    $this->redis = $redis;
  }

  /**
   * Get.
   */
  public function get(string $topic) {
    $topic = $this->modifyTopic($topic);
    return $this->redis->get($topic);
  }

  /**
   * Get.
   */
  public function multiGet(array $data) {
    $redis = $this->redis->multi();
    foreach ($data as $key => $val) {
      $topic = $this->modifyTopic($val['topic']);
      $redis->get($topic);
    }
    $result = $redis->exec();
    $i = 0;
    foreach ($data as $key => $value) {
      $data[$key]['state'] = $result[$i++];
    }
    return $data;
  }

  /**
   * Set.
   */
  public function set(string $topic, string $message) {
    $topic = $this->modifyTopic($topic);
    return $this->redis->set($topic, $message);
  }

  /**
   * Set.
   */
  private function modifyTopic(string $topic) : string {
    return str_replace("/", ":", $topic);
  }
Production build 0.69.0 2024