예제 #1
0
function main()
{
    !isset($_GET['url']) && exit_script('Hello Tumblr!');
    $query_param = get_query_param($_GET['url']);
    !$query_param && isImageUrl($_GET['url']) && redirect_location($_GET['url']) && exit_script();
    !$query_param && echoTxtFile("NOT VALID TUMBLR URL: [{$_GET['url']}]") && exit_script();
    $post_info = query_tumblr_api($query_param);
    !$post_info && echoTxtFile("NO POST INFO FETCHED FROM TUMBLR WITH GIVEN URL: [{$_GET['url']}], THE POST MIGHT BE DELETED") && exit_script();
    $post_info = $post_info['posts'][0];
    switch ($post_info['type']) {
        case 'link':
            $output = <<<EOD
                <p>Title: <h3>{$post_info['link-text']}</h3></p>
                <p>link: <a href="{$post_info['link-url']}">{$post_info['link-url']}</a></p>
                <p>Description:</p>
                <p>{$post_info['link-description']}</p>
EOD;
            echoHtmlFile($output);
            exit_script();
            break;
        case 'regular':
            $output = "<h3>{$post_info['regular-title']}</h3>{$post_info['regular-body']}";
            echoHtmlFile($output);
            exit_script();
            break;
        case 'answer':
            $question = htmlCharsDecode($post_info['question']);
            $answer = htmlCharsDecode($post_info['answer']);
            $tags = implode(', ', $post_info['tags']);
            $output = "[Q&A]\r\n\r\n{$question}\r\n\r\n{$answer}\r\n\r\nTags: {$tags}\r\n";
            echoTxtFile($output);
            exit_script();
            break;
        case 'video':
            $url = get_video_url($post_info);
            redirect_location($url) && exit_script();
            break;
        case 'photo':
        default:
            $urls = get_photo_urls($post_info);
            $count = count($urls);
            if ($count === 1) {
                redirect_location($urls[0]);
                exit_script();
            } else {
                $image_pack = fetch_images($urls);
                $zip_str = makeZip($image_pack);
                echoZipFile($zip_str);
                exit_script();
            }
            break;
    }
}
예제 #2
0
function main()
{
    !isset($_GET['url']) && exit_script('Hello Tumblr!');
    $query_param = get_query_param($_GET['url']);
    if (!$query_param) {
        if (isImageUrl($_GET['url'])) {
            redirect_location($_GET['url']);
            exit_script();
        } else {
            echoTxtFile("NOT VALID TUMBLR URL: [{$_GET['url']}]");
            exit_script();
        }
    } else {
        $post_record = find_from_ds($query_param);
        if ($post_record) {
            $record_data = $post_record->getData();
            return_recorded_data($record_data);
            exit_script();
        } else {
            $post_info = query_tumblr_api($query_param);
            if (!$post_info) {
                echoTxtFile("NO POST INFO FETCHED FROM TUMBLR WITH GIVEN URL: [{$_GET['url']}], THE POST MIGHT BE DELETED");
                exit_script();
            }
            $post_info = $post_info['posts'][0];
            $record = array('hash' => "{$query_param['post_domain']}|{$query_param['post_id']}", 'domain' => $query_param['post_domain'], 'postId' => $query_param['post_id'], 'postType' => $post_info['type'], 'responseType' => '', 'data' => '', 'time' => time());
            $output = '';
            switch ($post_info['type']) {
                case 'link':
                    $output = <<<EOD
                        <p>Title: <h3>{$post_info['link-text']}</h3></p>
                        <p>link: <a href="{$post_info['link-url']}">{$post_info['link-url']}</a></p>
                        <p>Description:</p>
                        <p>{$post_info['link-description']}</p>
EOD;
                    echoHtmlFile($output);
                    write_record($record, 'html', $output);
                    exit_script();
                    break;
                case 'regular':
                    $output = "<h3>{$post_info['regular-title']}</h3>{$post_info['regular-body']}";
                    echoHtmlFile($output);
                    write_record($record, 'html', $output);
                    exit_script();
                    break;
                case 'answer':
                    $question = htmlCharsDecode($post_info['question']);
                    $answer = htmlCharsDecode($post_info['answer']);
                    $tags = implode(', ', isset($post_info['tags']) ? $post_info['tags'] : array());
                    $output = "[Q&A]\r\n\r\n{$question}\r\n\r\n{$answer}\r\n\r\nTags: {$tags}\r\n";
                    echoHtmlFile($output);
                    write_record($record, 'html', $output);
                    exit_script();
                    break;
                case 'quote':
                    $quote_text = $post_info['quote-text'];
                    $quote_source = $post_info['quote-source'];
                    $output = "Text: {$quote_text}<br><br>\r\nSource: {$quote_source}";
                    echoHtmlFile($output);
                    write_record($record, 'html', $output);
                    exit_script();
                    break;
                case 'video':
                    $url = get_video_url($post_info);
                    redirect_location($url);
                    write_record($record, 'redirect', $url);
                    exit_script();
                    break;
                case 'photo':
                default:
                    $urls = get_photo_urls($post_info);
                    $count = count($urls);
                    if ($count === 1) {
                        redirect_location($urls[0]);
                        write_record($record, 'redirect', $urls[0]);
                        exit_script();
                    } else {
                        $images_pack = fetch_images($urls);
                        $urls_str = implode("\r\n", $urls);
                        if ($images_pack['count'] === 0) {
                            $output = "Error: can't load this pictures\r\n{$urls}\r\n\r\nFrom: {$_GET['url']}";
                            echoTxtFile($output);
                        } else {
                            $output = makeZip($images_pack);
                            echoZipFile($output);
                        }
                        write_record($record, 'photoSet', $urls_str);
                        exit_script();
                    }
                    break;
            }
        }
    }
}