Blame view
app/Components/Integrations/Telegram/VacancyChannel.php
2.26 KB
088323a40 task-132687 teleg... |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php namespace App\Components\Integrations\Telegram; use App\Models\Ad_employer; use Str; use Telegram\Bot\Api; use Telegram\Bot\Exceptions\TelegramSDKException; use Telegram\Bot\Laravel\Facades\Telegram; use Telegram\Bot\Objects\Update; class VacancyChannel { |
465aace57 task-132687 minor... |
14 |
const REKAMORE_CHANNEL_ID = 'REKAMORE_CHANNEL_ID'; |
088323a40 task-132687 teleg... |
15 16 17 18 19 20 21 22 23 24 |
private Api $botApi; public function __construct() { $this->botApi = Telegram::bot('channel_bot'); } /** * @throws TelegramSDKException */ |
465aace57 task-132687 minor... |
25 |
private function getChatId() |
088323a40 task-132687 teleg... |
26 27 28 29 30 |
{ $updates = $this->botApi->getUpdates(); /** @var Update $update*/ $chatId = null; foreach ($updates as $update) { |
465aace57 task-132687 minor... |
31 32 33 34 |
if ($update->message?->chat->title === config('services.telegram.chat_title')) { $chatId = $update->message->chat->id; \Cache::set(self::REKAMORE_CHANNEL_ID, $chatId, null); break; |
088323a40 task-132687 teleg... |
35 36 |
} } |
465aace57 task-132687 minor... |
37 |
|
088323a40 task-132687 teleg... |
38 |
if ($chatId === null) { |
465aace57 task-132687 minor... |
39 40 41 42 |
$chatId = \Cache::get(self::REKAMORE_CHANNEL_ID); if ($chatId === null) { throw new TelegramSDKException('Cant locate group chat id'); } |
088323a40 task-132687 teleg... |
43 |
} |
465aace57 task-132687 minor... |
44 45 46 47 48 49 50 51 52 |
return $chatId; } /** * @throws TelegramSDKException */ public function sendVacancy(Ad_employer $vacancy): void { $chatId = $this->getChatId(); |
ab181e741 task-132985 autol... |
53 |
$text = $this->formatTextFotTelegram($vacancy->text); |
088323a40 task-132687 teleg... |
54 55 56 57 58 59 60 61 |
$this->botApi->sendMessage([ 'chat_id' => $chatId, 'text' => $text, 'disable_web_page_preview' => true, 'parse_mode' => 'HTML' ]); } |
ab181e741 task-132985 autol... |
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
public function formatTextFotTelegram(string $text): string { $text = str_ireplace('<p>', '', $text); $text = str_ireplace('</p>', '', $text); $text = str_ireplace('<br>', '', $text); $text = str_ireplace('<br />', '', $text); $text = str_ireplace('<h3>', '<b>', $text); $text = str_ireplace('</h3>', '</b>', $text); $text = str_ireplace('<strong>', '<b>', $text); $text = str_ireplace('</strong>', '</b>', $text); $text = str_ireplace('<em>', '<i>', $text); $text = str_ireplace('</em>', '</i>', $text); |
f0dbdae20 fix vacancy text ... |
79 |
return html_entity_decode($text, ENT_QUOTES | ENT_HTML5, 'UTF-8'); |
ab181e741 task-132985 autol... |
80 |
} |
088323a40 task-132687 teleg... |
81 |
} |