• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

joindin / callingallpapers-cli / 19017699028

02 Nov 2025 08:25PM UTC coverage: 26.857% (-12.5%) from 39.394%
19017699028

push

github

heiglandreas
Move to coveralls action

405 of 1508 relevant lines covered (26.86%)

0.52 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Notification/TwitterNotifier.php
1
<?php
2
/**
3
 * Copyright (c) Andreas Heigl<andreas@heigl.org>
4
 * Permission is hereby granted, free of charge, to any person obtaining a copy
5
 * of this software and associated documentation files (the "Software"), to deal
6
 * in the Software without restriction, including without limitation the rights
7
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
 * copies of the Software, and to permit persons to whom the Software is
9
 * furnished to do so, subject to the following conditions:
10
 * The above copyright notice and this permission notice shall be included in
11
 * all copies or substantial portions of the Software.
12
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
18
 * THE SOFTWARE.
19
 *
20
 * @author    Andreas Heigl<andreas@heigl.org>
21
 * @copyright Andreas Heigl
22
 * @license   http://www.opensource.org/licenses/mit-license.php MIT-License
23
 * @since     22.09.2016
24
 * @link      http://github.com/heiglandreas/callingallpapers
25
 */
26

27
namespace Callingallpapers\Notification;
28

29
use Callingallpapers\Entity\Cfp;
30
use GuzzleHttp\Client;
31
use GuzzleHttp\Psr7\Request;
32

33
class TwitterNotifier implements NotificationInterface
34
{
35
    protected $client;
36

37
    public function __construct(Client $client)
×
38
    {
39
        $this->client = $client;
×
40
    }
41

42
    public function notify(Cfp $cfp)
×
43
    {
44
        $name = $this->shortenName($cfp->conferenceName);
×
45
        $uri  = $this->shortenUri($cfp->uri);
×
46

47
        $notificationString = sprintf(
×
48
            '24 hours until the CfP for "%1$s" closes: %2$s',
×
49
            $name,
×
50
            $uri
×
51
        );
×
52
        $request = new Request(
×
53
            'POST',
×
54
            'statuses/update.json?' . $this->formUrlEncode([
×
55
                'status'              => $notificationString,
×
56
                'lat'                 => $cfp->latitude,
×
57
                'long'                => $cfp->longitude,
×
58
                'display_coordinates' => 'true',
×
59
            ])
×
60
        );
×
61

62
        try {
63
            $this->client->send($request);
×
64
        } catch (\Exception $e) {
×
65
            //
66
        }
67
    }
68

69
    protected function shortenName($name)
×
70
    {
71
        if (strlen($name) < 70) {
×
72
            return $name;
×
73
        }
74
        return substr($name, 0, 69) . '…';
×
75
    }
76

77
    protected function shortenUri($uri)
×
78
    {
79
        return $uri;
×
80
    }
81

82
    protected function formUrlEncode(array $stuff)
×
83
    {
84
        return http_build_query($stuff);
×
85
    }
86
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc