Это был долгий уик-энд на прошлой неделе здесь, в Австралии, и я тоже сломал от покупки Bitcoins выйти, поэтому я приступил к реализации проекта, чтобы создать неофициальный Bitcointalk.org REST API.
Я дам краткое описание API, то есть некоторые ссылки вы можете посетить которые показывают API в действии.
API является JSON только, и в настоящее время позволяет перечислить категории, доски, тему и сообщение. Дальнейшая работа может включать в себя добавление профилей пользователей также. API только позволяет вам читать от Bitcoin Talk; нет в настоящее время нет возможности размещать, редактировать сообщения и так далее. API размещается на Google App Engine (GAE). Примечание: Иногда-запрос HTTP в GAE приложения потребуется много времени, чтобы среагировать, если он должен раскрутить новый экземпляр.
- Список категорий / совет
- Индивидуум доска список
- Индивидуальная тема список
- Индивидуальный список страницы
- Параметр Convenience - загрузить тему и известный номер страницы в одном запросе, вместо двух. Страница загружается в «requestedPage»
- Параметр Convenience - загрузить тему и «последней» страницы в одном запросе. Последняя страница последняя страница в теме многостраничного или на первой странице, если имеется только одна страница. Страница загружается в «requestedPage»
Если вы просматриваете API вы можете обнаружить доски и темы, которые, кажется, не имеют никакого содержания - это из-за моей «ленивый скребковым» шаблон подробно ниже.
Небольшое примечание о просмотре API с вашего веб-браузера: Я использую небольшой трюк я узнал от некоторых из моих старых коллег при разработке интерфейсов API - API-интерфейс проверяет "принимать" заголовок, чтобы обнаружить, если вы запрашиваете содержание от вашего браузера, или из JavaScript. Если вы находитесь в вашем браузере то API возвращает довольно отпечатанные HTML и превращает соответствующие свойства в ссылки, так что вы можете следовать за ними. Если вы запрашиваете из JavaScript, то не очень распечатаны, не связанные объекты JSON возвращаются. Это позволяет просматривать API легко без клиента REST.
API работает с помощью скребка экрана на версию WAP на форумах, как это было предложено в theymos эта почта. Экран скребок находится в своем собственном проекте, отдельно от самого API.
Общий дизайн, чтобы избежать соскоб старые темы, и вместо этого сосредоточиться на новейшем содержание. Скребок не может загрузить весь форум сразу, поэтому он использует «ленивую загрузку» или «ленивое обновление» подход к выскабливанию содержимого - если тема или совет запрашивается и соскабливают меньше, чем определенное количество времени назад * , то задача будет добавлена в очередь задач по данной теме, чтобы быть повторно соскабливают. Это означает, что, если никто не использует API тогда никаких задач не идут в очереди, и если много людей используют API, то многие задачи идут в очереди. Очередь задача будет в конечном итоге будет завален большим количеством запросов, чтобы очистить множество советов и тем, и я могу регулировать скорость выполнения этих задач на основе того, сколько theymos орет на меня. Если очень большая тема встречается (как нить Wall по наблюдению в спекуляцией), то первые две страницы и последние две страницы будут загружены только, чтобы избежать генерации слишком много запросов.
* ТОК «свежесть» досок 5 минут и свежесть тем 1 минута. Если вы делаете клиент, то я рекомендую просто жесткое кодирование списка категорий и тем, так как это, вероятно, изменятся, что многое не так.
Ограничения:
- Фиксированное число сообщений на странице (20, так же, как эти форумы)
- только В настоящее время в формате JSON
- Существует нет времени / даты информация на столбах - это потому, что я использую версию WAP на форумах и не отображается дата.
- Подобно точке выше, форматирование для BBCode (цитата) особенность теряется, и он просто выходит в виде обычного текста, как «Цитата: ... <бр /> ш>
Кодекс является открытым исходным кодом на GitHub (Java): BitcoinTalkScraper а также BitcoinTalkAPI
Оставайтесь с нами на этой неделе новости о моем неофициальном клиента Bitcointalk мобильный / таблетку форума.
Я делаю это полностью за любовь Bitcoin и этих форумов, и все это бесплатно, но если вы чувствуете себя действительно щедры, пожалуйста, наклонить меня в 17SbWcyRoZd7u1tZeJtjzm834a3gAHdf2A. Благодаря!