Подача атома StackOverflow для использования со стартовой страницей VS2008 - PullRequest
3 голосов
/ 14 октября 2008

Есть ли URL-адрес для StackOverflow, который я могу использовать на стартовой странице VS вместо никогда не обновляемой страницы MS? URL, который использует VS, может быть установлен в диалоге Tools-> Options :: Startup.

Я пытался https://stackoverflow.com/feeds VS жалоб со следующей ошибкой:

Текущий канал новостей может быть не действительный канал RSS или ваш интернет соединение может быть недоступно. к изменить канал новостей, на Инструменты меню, нажмите Параметры, затем разверните Окружение и нажмите Startup.

Ответы [ 4 ]

2 голосов
/ 15 октября 2008

Вот мое менее элегантное решение проблемы.

Вам потребуется доступ к php-серверу.

Лента должна быть преобразована в RSS из atom, и здесь есть действительно хорошая таблица стилей xsl, которая отвечает всем требованиям: http://atom.geekhood.net/, конкретно: http://atom.geekhood.net/atom2rss.xsl

В ленте есть один элемент, который VS не нравится:

<link xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" rel="replies" type="application/atom+xml" href="http://stackoverflow.com/feeds/question/204696/answers" thr:count="5" />

Чтобы обойти это, перейдите к концу таблицы стилей и закомментируйте следующую копию, как я сделал:

<!-- copy extensions -->
<x:template match='*'>
    <x:comment>Unknown element <x:value-of select="local-name(.)"/></x:comment>
<!--    
    <x:copy>
        <x:copy-of select='node()|@*'/>
    </x:copy>
-->
</x:template>

Теперь создайте php-файл на вашем php-сервере со следующим содержимым:

<?php

$url=$_GET['url'];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($ch);
curl_close($ch);

$chan = new DOMDocument(); 
$chan->loadXML($content);  
$sheet = new DOMDocument(); 
$sheet->load('atom2rss.xsl'); 
$processor = new XSLTProcessor();
$processor->registerPHPFunctions();
$processor->importStylesheet($sheet);
$result = $processor->transformToXML($chan); 

echo $result;

?>

Теперь переместите файл atom2rss.xsl в тот же каталог, что и созданный вами файл php.

Теперь в VS вы можете добавить новый URL страницы стартапа как:

http://yourserver.com/file.php?http://stackoverflow/feeds

Где yourserver.com - ваш домен, а file.php - файл с содержанием php сверху ...

Тогда вы сможете пользоваться каналом RSS от Stackoverflow.com на своей стартовой странице в Visual Studio, то есть, конечно, если вам нравятся такие вещи ...

Предполагается, что вы используете PHP5 и на сервере включены php_curl.dll и php_xsl.dll.

Наслаждайтесь

2 голосов
/ 14 октября 2008

Похоже, что https://stackoverflow.com/feeds на самом деле является подачей атома, а не rss, так что, вероятно, отсюда и проблема VS.

Возможно, вам придется создать посредника и преобразовать атом в rss.

2 голосов
/ 14 октября 2008

https://stackoverflow.com/tags/vs2008 - это то, что я выбрал бы, чтобы держать актуальные вопросы для vs2k8 в авангарде

edit - Я не знаю, почему за это проголосовали - URL действителен для SO.

Если вы ищете конкретную ленту тегов, вы можете получить что-то вроде https://stackoverflow.com/feeds/tag/vs2008.

0 голосов
/ 14 октября 2008

Попробуйте RSS-канал для главной страницы: https://stackoverflow.com/feeds

Редактировать : Ой, как правильно отмечают комментарии, похоже, что это фид ATOM, а не фид RSS, я должен был дважды проверить его перед публикацией! Я попытался запустить канал через FeedBurner, чтобы преобразовать его в RSS, но VS все еще не нравится. Странно то, что когда я сохранил вывод фида FeedBurner в виде статического XML-файла и подал его локально, VS не испытывал проблем!

Я немного поиграл с этим сейчас и не могу найти обходной путь. Я не знаю точно, что VS не любит (предположительно, что-то связанное с заголовком), но я предполагаю, что единственный способ, которым это может сработать, - это если парни из SO реализуют что-то на своем конце или кто-то пишет прокси.

Редактировать снова : Возможно, это связано с кодировкой. Ммм ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...