root/dev/common/portrait_grab.php @ 316

Revision 316, 3.9 KB (checked in by ralle030583, 14 years ago)

Tickets #72 , #73
- assign kb_host to smarty
- type and reformot in portrait_grab

Line 
1<?php
2/* ex: set ts=4: set sw=4: set expandtab */
3require_once('common/includes/class.pilot.php');
4require_once('common/includes/class.corp.php');
5require_once('common/includes/class.alliance.php');
6define('IS_IMG_MAX', 256);
7
8$page = new Page('Capture portrait');
9
10$html .= '<html><head><title>Update portrait</title></head><body>';
11
12if (!$page->igb())
13{
14    $html .= 'You need to access this page from the EVE ingame browser.';
15}
16else
17{
18    if (($_SERVER['HTTP_EVE_TRUSTED'] == 'no'))
19    {
20        Header('eve.trustme:http://'.$_SERVER['HTTP_HOST'].'/::Need trust to grab character portrait.');
21        $html .= '<h1>Trust Required</h1>';
22        $html .= 'This site needs to be trusted in order to grab your character portrait.';
23    }
24    else
25    {
26        $now = date('Y-m-d H:m:s');
27        $alliance = new Alliance();
28        $all_id = $alliance->add($_SERVER['HTTP_EVE_ALLIANCENAME']);
29        $corp = new Corporation();
30        $crp_id = $corp->add($_SERVER['HTTP_EVE_CORPNAME'], $alliance, $now);
31        $pilot = new Pilot();
32        $plt_id = $pilot->add($_SERVER['HTTP_EVE_CHARNAME'], $corp, $now);
33        $id = intval($_SERVER['HTTP_EVE_CHARID']);
34        $pilot->setCharacterID($id);
35        if (file_exists("cache/portraits/".$id."_256.jpg") && 1 == $_REQUEST['force']) 
36        {
37            // Remove just in case.
38            @unlink("cache/portraits/".$id."_32.jpg");
39            @unlink("cache/portraits/".$id."_64.jpg");
40            @unlink("cache/portraits/".$id."_128.jpg");
41            @unlink("cache/portraits/".$id."_256.jpg");
42            if (0 == create_portraits($id))
43            {
44                $message = "Character portrait uploaded.";
45            }
46            else
47            {
48                $message = "Character portrait update failed.";
49            }
50        }
51        elseif (file_exists("cache/portraits/".$id."_256.jpg"))
52        {
53            $message = "Character portrait not updated, as it already exists. <a href='".KB_HOST."?a=portrait_grab&force=1'>Click</a> to force an update.";
54        }
55        else
56        {
57            if (0 == create_portraits($id))
58            {
59                $message = "Character portrait uploaded.";
60            }
61            else
62            {
63                $message = "Character portrait update failed.";
64            }
65           
66        }
67        $html .= "<img src='".$pilot->getPortraitURL(64)."' border='0' />";
68        $html .= "<br />$message <br />$port_error_msg <br />";
69        $html .= "<a href='".KB_HOST."?a=igb'>Return</a> to the killboard.<br />";
70    }
71}
72
73$html .= "</body></html>";
74
75$page->setContent($html);
76$page->generate();
77
78function create_portraits($id) {
79    global $port_error_msg;
80    if (1 != ini_get('allow_url_fopen')) {
81        $port_error_msg = 'This web host does not allow PHP to create HTTP connections.  Check allow_url_fopen.';
82        return -99;
83    }
84    if (! is_writable('cache/portraits/')) {
85        $port_error_msg = 'The portraits directory is not writable.  Please fix this.';
86        return -99;
87    }
88
89    $img = @imagecreatefromjpeg("http://img.eve.is/serv.asp?s=".IS_IMG_MAX."&c=".$id);
90    if ($img)
91    {
92        $dims = array (32, 64, 128);
93        foreach ($dims as $dim) {
94            $newimg = @imagecreatetruecolor($dim,$dim);
95            @imagecopyresampled($newimg, $img, 0,0,0,0,$dim,$dim,IS_IMG_MAX,IS_IMG_MAX);
96            @imagejpeg($newimg, "cache/portraits/".$id."_".$dim.".jpg");
97        }
98        @imagejpeg($img, "cache/portraits/".$id . "_256.jpg");
99        $return = 0;
100    }
101    else
102    {
103        $port_error_msg = 'Attempting to create an image failed, and it was not because the directory was not writable.';
104        $return = -99;
105    }
106
107    if (filesize("cache/portraits/".$id."_256.jpg") == '3863')
108    {
109        $port_error_msg = 'CCP have not generated an image for you yet.  Be patient.';
110    }
111    return $return;
112}
113?>
Note: See TracBrowser for help on using the browser.