41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| use Shikiryu\WebGobbler\Assembler\Superpose;
 | |
| use Shikiryu\WebGobbler\Config;
 | |
| use Shikiryu\WebGobbler\Pool;
 | |
| 
 | |
| include 'vendor/autoload.php';
 | |
| include 'Mastodon/Mastodon.php';
 | |
| 
 | |
| $mastodon_config = require 'mastodon-config.php';
 | |
| 
 | |
| try {
 | |
|     // generate picture
 | |
|     $config = new Config('./config.json');
 | |
|     $pool = new Pool($config);
 | |
|     $upload_image_name = uniqid('superpose_', true);
 | |
|     $image = new Superpose($pool, $config);
 | |
|     $image_path = sprintf('./render/%s.jpg', $upload_image_name);
 | |
|     $image->saveTo($image_path);
 | |
| 
 | |
|     // send picture to mastodon
 | |
|     $app = new MastodonAPI($mastodon_config['access_token'], $mastodon_config['domain']);
 | |
|     $curl_file = curl_file_create(realpath($image_path));
 | |
|     $body = ['file' => $curl_file];
 | |
|     $response = $app->uploadMedia($body);
 | |
|     $file_id = $response->id;
 | |
|     $statusText = 'Nouveau collage';
 | |
|     $status_data = [
 | |
|         'status'      => $statusText,
 | |
|         'visibility'  => 'public',
 | |
|         'language'    => 'fr',
 | |
|         'media_ids[]' => $file_id,
 | |
|     ];
 | |
| 
 | |
|     $app->postStatus($status_data);
 | |
| } catch (Exception $exception) {
 | |
|     echo $exception->getMessage();
 | |
| }
 | |
| 
 | |
| 
 |