Skip to content

Instantly share code, notes, and snippets.

@spacegangster
Created April 8, 2016 19:10
Show Gist options
  • Save spacegangster/f4e6f71e090c523137e413e58c64659d to your computer and use it in GitHub Desktop.
Save spacegangster/f4e6f71e090c523137e413e58c64659d to your computer and use it in GitHub Desktop.
Партизанские запросы к Огниву
// Первым делом нужно получить куку ring-session
// Выполните запрос вида:
var auth_response = $.post('/user/signin', {username: "test", password: "test"});
// Придёт JSON-ответ вида {status: "ok", redirect_url: null}.
// Кука будет содержаться в заголовках ответа. Дальнейшие запросы должны содержать эту куку.
// Далее нужно получить т.н. начальные данные:
var initial_data = $.get('/rest/firs')
// Начальные данные нормализованы и содержат в себе информацию по всем вашим записям и записям друзей доступным вам. По этой структуре можно гонять запросы, затем чтобы выловить нужные вам записи. Когда вы соберёте нужные вам записи, берите их айди и делайте запрос.
var entries = $.get('/rest/entries/1,2,3')
// Вместо 1,2,3 ставьте айди интересующих вас записей.
/**
* Как устроены начальные. Это JSON с тремя ключами:
* - `entries_data`
* - `friends_forests`
* - `user_forest`
* `entries_data` - хэш, где ключи это идентификаторы записей, а значения — данные по записям.
* Как вытянуть данные по всем задачам на языке JavaScript:
*/
var entries_data_hash = initial_data.entries_data;
var entries_ids = Object.keys(entries_data_hash);
var entries = entries_ids.map(function(id) {return entries_data_hash[id]});
function collect_task(coll, entry) {
if (entry.type === 1) {
coll.push(entry)
}
return coll;
}
var tasks_data = entries.reduce(collect_task, []);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment