Продолжаем социальные эксперименты. В прошлые разы мы, дорогие товарищи, прокатились тяжелым катком по неокрепшему сознанию неойогов. Благодаря этому классному маркетинговому ходу бложик продолжил стремительное пике в направлении дна социальных сетей.
Ввиду того, что давненько уже не было ничего технического, сумрачный гений прокуренных закрамов сознания решил выдать следующее: скриптик, который гуляет по фотографиям, а к выбранным фотографиям подставляет описание и набор хештегов.
Полученный результат отправляется прямиком в твиттер.
<?php
//this gets a random directory
function get_random_dir($base_dir)
{
$dirs = glob(sprintf('%s/*',$base_dir),GLOB_ONLYDIR);
return empty($dirs) ? null : $dirs[array_rand($dirs)];
}
//set max execution time in case we used all images
ini_set("max_execution_time", "1");
while(empty($img)) {
//get random directory
$randomdir=get_random_dir('/images');
//reformat the directory path using the chosen subfolder
$twittertext=str_replace('/images', '', $randomdir);
//creates structure for folder path
$imagesDir = '/images'.$twittertext.'/';
//gets a random file from that directory and ads to variable
$images = glob($imagesDir . '*.{jpg,jpeg}', GLOB_BRACE);
$file = $images[array_rand($images)]; // See comments
$img=$file;
}
//$config = parse_ini_file('./config.ini');
$photo = basename($img,".jpg");
$title = substr_replace($photo ,"",-3);
function generate_text($title)
{
$tags = '#photo, #khabrakhabr';
$address = 'https://www.khabrakhabr.ru';
$conn = new mysqli($config['servername'],$config['username'],$config['password'],$config['dbname']);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT
XXX_tags.alias
FROM XXX_content
INNER JOIN XXX_contentitem_tag_map ON XXX_content.id = XXX_contentitem_tag_map.content_item_id
INNER JOIN XXX_tags ON XXX_tags.id = XXX_contentitem_tag_map.tag_id
where XXX_content.title = '$title'";
$sql2 = "SELECT id,title,catid,
CASE
WHEN catid =15 THEN 'khabrakhabr-story'
WHEN catid = 9 THEN 'khabrakhabr-photo'
WHEN catid = 14 THEN 'khabrakhabr-diy'
ELSE ''
END
FROM `XXX_content`
WHERE XXX_content.title = '$title'";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($result))
{
$tag[] = $row[0];
}
$url = mysqli_query($conn, $sql2);
while($row = mysqli_fetch_array($url))
{
$address = 'https://www.khabrakhabr.ru/'.$row[3].'/'.$row[0].'-'.$row[1];
}
$tags = implode(' #',$tag);
print $tags;
print $address;
$text ='#'.$tags.' '.$address;
return $text;
}
$hashtags = generate_text($title);
$txt=$hashtags.' '.$title;
require_once 'twitter.class.php';
$consumerKey='';
$consumerSecret='';
$accessToken='';
$accessTokenSecret='';
$twitter = new Twitter($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);
try {
$tweet = $twitter->send($txt, $img);
} catch (TwitterException $e) {
echo 'Error: ' . $e->getMessage();
}
?>
Как видит трепетный читатель, скрипт не требует большого ума, вот только авторам этих строк давался он с какой-то непостижимой сложностью. К необработанным проблемам, пока что, стоит отнести то, что требуется настраивать naming convention для того, чтобы на каждую фотографию находилась как минимум одна статья и набор тэгов. Очевидно, что следующими этапами будет покорение других социальных сетей, но в силу того, что нужно иногда прерываться на воспоминания о немодном Интерпрайзе, скоро вас будет ожидать серия совершенно неинтересных, но приносящих хиты статей о SQL запросах, которые смогут помочь страдальцам.
А пока что – картинки