Git Product home page Git Product logo

thrift-everfeeds's Introduction

** Thrift API – Everfeeds project core subsystem.

The first aim: to provide consistent API for remote clients, with cache and simple methods.

thrift-everfeeds's People

Contributors

alari avatar

Watchers

 avatar James Cloos avatar Benno Löffler avatar

thrift-everfeeds's Issues

Оттестировать твиттер

Реализовано remote api for twitter. Следует покрыть его тестами с имитацией ответов сервера в TwitterRaw.

Поднять Maven Repository

Нужно срочно поднять мавен. И засунуть в него, для начала, twitter-text жарку.

Отслеживать приватность в фейсбуке

Подразумевается в обозримом будущем возможность перепощивать записи.

Записи, которые их автором помечаются как приватные, НЕЛЬЗЯ перепощивать.

Поэтому мы делаем соотв. флажок, который означает -- вправе пользователь манипулировать приватностью контента или нет.

Нужно сделать его для фейсбука.

Сделать Gmail/IMAP

Gmail даёт возможность юзать IMAP без логина-пароля, по специальному OAuth. Мне кажется, это обалденная штука, которую маст хэв.

Реализовать AtomPub

Нужно реализовать AtomPublishingProtocol [http://abdera.apache.org/], [http://codex.wordpress.org/AtomPub]

Он поддерживается вордпрессом, жж, блоггером. Их отнаследуем потом (может быть), или сделаем конструкторы.

Рефакторинг: сделать адаптеры

Есть домены трифтовые, есть монго. В монго и в хандлерах есть методы, приводящие одни в другие.

Нужно вынести их в группу классов-адаптеров, чтобы не искать метод, которым что конвертится.

Групповые профили юзеров

Многие штуки кросспостятся в разные сети. У юзера появляется один и тот же контент. Хорошо бы научиться анализировать такой контент, связывать его, предлагать создать групповой профиль юзера -- связать профили френдов в разных социалках.

Выделить второе апи + отдельный сервер

Не все возможности можно вообще публиковать.

Например, привязка доступов, работа с аппликейшнами -- пользователями АПИ, и тд.

Но покуда база данных единая, нужно и это давать через апи. Самим себе.

Для этого будем второй порт оккупировать при запуске, второй сервер запускать. Маленький.

Организовать билд Java API

То, что фигачится в папку thrift/gen-java, нужно уметь билдить в жарку. Сейчас оно билдится с помощью Анта, но делает это безграмотно. Нужно сделать грамотно.

Remote Search

Нужно уметь искать с помощью стороннего АПИ, если АПИ это позволяет.

Организовать билд и деплой сервера

Нужно сделать, чтобы сырцы легко билдились в запускаемую жарку. Вроде для этого всё приготовлено в мавене проекта, но нужно проверить, оттестировать, сделать по уму.

Когда жарка будет билдиться, нужно организовать её разворачивание на сервере, пока без доступа снаружи. Разворачивание в деплойменте рабочее -- критерий выполнения тикета.

Cached Search

Нужно уметь искать в нашей базе. Можно употребить Lucene.

Реализовать систему контроля прав

Есть у токенов и аппликейшнов list scopes.

Нужно помедитировать на апи, написать список scopes, контролировать, есть ли нужные права у приложения и юзер-токена для совершения действия.

Geolocation

Нужно в монго записи сохранять инфу о координатах

Там, где она возвращается как полигон, брать центр полигона, остальные данные сохранять в отдельном поле.

Вынести pull/push в АПИ

Логично, что пулл/пуш, доступаторы, парсинг и тп должны быть в ядре АПИ.

Нужно их туда и вынести.

Собирать емейлы

Гугл отдаёт емейл. Фейсбук тоже может.
Это априори подтверждённые адреса.
Нужно их коллекционировать в какую-нибудь табличку (или в список строчек, если монго поднимем)

Работа с файлами

Есть штуки, где файлы вложены в заметки (атом, емейлы, эверноут)
И где файлы -- основа (дропбокс)
Нужно уметь с ними работать

Нужно уметь обрабатывать файлы. Надо будет закачивать картинки во фликр, фейсбук, пикасу, эверноут и тп. И не только картинки.
Нужно организовать инфраструктуру и архитектуру хранения, обработки и доступа к файлам. Научиться сжимать файлы, определять их типы (например, чтобы закачивать что угодно в эверноут, например)

Pull by ID

Нужно уметь пуллить энтри по айди. Обновлять существующую или сохранять.

Кэшировать соответствие фильтрам

Конечно, умение фильтровать данные -- это прекрасно.

Однако ж нужно также уметь делать это очень быстро, для чего следует организовать кэш и его пересчёт при добавлении/изменении записи и при изменении фильтра.

Нужно организовать ПЕРЕСЧЁТ и ИСПОЛЬЗОВАНИЕ КЭША

Прописать exceptions в thrift

Thrift требует, чтобы все юзерские ошибки были соотв. образом обработаны юзерскими эксепшнами.

Нужно все их систематизировать и прописать.

Организовать тестирование

Нужно сделать простейший runnable клиент, запускать сервер и фигачить тесты от клиента. Научиться хотя бы это делать, junit прикрутить, а потом придумаем, какие тесты писать.

Может быть, лучше тесты делать на Groovy. Быстрее будет.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.