Files
CloudOps/docker-compose/mautic-setup/mautic-backup-files/docroot/plugins/MauticSocialBundle/Command/MonitorTwitterMentionsCommand.php

51 lines
1.4 KiB
PHP
Executable File

<?php
namespace MauticPlugin\MauticSocialBundle\Command;
use MauticPlugin\MauticSocialBundle\Entity\Monitoring;
use Symfony\Component\Console\Attribute\AsCommand;
#[AsCommand(
name: 'social:monitor:twitter:mentions',
description: 'Searches for mentioned tweets'
)]
class MonitorTwitterMentionsCommand extends MonitorTwitterBaseCommand
{
/**
* Search for tweets by mention.
*
* @param Monitoring $monitor
*
* @return bool|array False if missing the twitter handle, otherwise the array response from Twitter
*/
protected function getTweets($monitor)
{
$params = $monitor->getProperties();
$stats = $monitor->getStats();
if (!array_key_exists('handle', $params)) {
$this->output->writeln('No twitter handle was found!');
return false;
}
$mentionsUrl = $this->twitter->getApiUrl('search/tweets');
$requestQuery = [
'q' => '@'.$params['handle'],
'count' => $this->queryCount,
];
// if we have a max id string use it here
if (is_array($stats) && array_key_exists('max_id_str', $stats) && $stats['max_id_str']) {
$requestQuery['since_id'] = $stats['max_id_str'];
}
return $this->twitter->makeRequest($mentionsUrl, $requestQuery);
}
public function getNetworkName(): string
{
return 'twitter';
}
}