ОРФографическое
   Улучшение
    Сайтов|
Orphus community
Orphus Community
Orphus community forum.
 

API Орфуса (rusec)
Автор Сообщение
rusec
Заглянувший



Зарегистрирован: 20.07.2007
Сообщ.: 6
Карма: 0
   поощрить/наказать

Откуда: Quito, Ecuador

СообщениеДобавлено: Сб Июл 21, 2007 12:00 am (написано за 4 минуты 57 секунд)
   Заголовок сообщения: Добавление сообщений орфуса в БД
   Ответить с цитатой

Хочу прикрутить орфус к библиотеке Либрусек (lib.rus.ec).
Сообщения об опечатках в книгах хочется складывать в базу данных, с некоторой дополнительной информацией, типа id книги.
В яваскрипте слаб, серверную часть напишу любую.
Не подскажите, что и как поправить?
Я так понимаю, при генерации ифрейма надо запихнуть дополнительные параметры, а потом вместо отсылки письма послать post?

Перенаправлять письма на ваш сайт не хочется - это будут тысячи сообщений в день ориентировочно.

Извините, что отрываю занятых людей, но самому в js копаться решительно некогда :(
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дмитрий Кóтеров
Администратор



Зарегистрирован: 10.03.2003
Сообщ.: 13502
Карма: 383
   поощрить/наказать


СообщениеДобавлено: Вс Июл 22, 2007 2:20 pm (спустя 1 день 14 часов 20 минут; написано за 4 минуты 26 секунд)
   Заголовок сообщения:
   Ответить с цитатой

Ну так ради бога, тысячи - так тысячи.
Орфус вообще-то распространяется именно в таком виде, какой он сейчас, и я против любой модификации, т.к. это будет уже воровство идеи и кода.

Может быть, Вам подойдет какое-нибудь API, к которому Вы сможете обращаться на сайте Орфуса? Например, RSS-канал, в котором будут приводиться все необработанные опечатки? Мы можем с Вами пообщаться на эту тему и совместно определить, какое именно API требуется. Возможно, оно и другим людям пригодится тоже.

ID книги наверняка можно выделить из URL страницы. Более того, можно сделать, чтобы перед посылкой сообщения сканировались все META-тэги на странице, и вместе с сообщением присылалось содержимое какого-нибудь META-тэга, например:

<meta name="orphus" content="book_id=123&some=other" />
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Гость






Карма: 300
   поощрить/наказать


СообщениеДобавлено: Пт Июл 27, 2007 9:21 am (спустя 4 дня 19 часов 28 секунд; написано за 6 минут 56 секунд)
   Заголовок сообщения:
   Ответить с цитатой

давайте попробуем.
Такой вопрос.
есть текст:

<h1>Сказ о пулемётчике
<p o=2>Tra-ta-ta-ta
<h2 o=3>говорит пулемётчик
<p o=4>Tra-ta-ta-ta
<p o=5>говорит пулемёт

примерно в таком духе.
У каждого параграфа есть атрибут 'o' с числовым id.
Юзер выделил ошибку. Мне нужно получить id сбойного параграфа, чтобы в модуле редактирования не грузить всю книгу.
Если выделение зацепило несколько параграфов - значит все id (ну или первый и последний, они линейно возрастают.)
Id я расставляю при генерации html из fb2 и в принципе могу это делать произвольным образом.
Есть ли возможность выслать на сервер кроме собственно выделенного текста id параграфов?
Текст вокруг выделенного, очевидно, не нужен. Параграфы достаточно невелики.
Вернуться к началу
rusec
Заглянувший



Зарегистрирован: 20.07.2007
Сообщ.: 6
Карма: 0
   поощрить/наказать

Откуда: Quito, Ecuador

СообщениеДобавлено: Сб Июл 28, 2007 2:49 am (спустя 17 часов 27 минут; написано за 16 секунд)
   Заголовок сообщения:
   Ответить с цитатой

В идеале вообще никому никаких сообщений не слать, а при нажатии хоткей вместо текущего параграфа открывать textarea с его исходным fb2 кодом. А по исправлению отсылать на сайт исправленный вариант. И там уже вести лог версий и все такое.
Как это реальзовать в ie я примерно понял, но у меня большинство посетителей, включая меня самого - ff. А у мозиллы как-то толком выделение не отрабатывается, или я не нашел как по выделению найти текущий параграф.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дмитрий Кóтеров
Администратор



Зарегистрирован: 10.03.2003
Сообщ.: 13502
Карма: 383
   поощрить/наказать


СообщениеДобавлено: Сб Июл 28, 2007 3:42 am (спустя 53 минуты; написано за 3 минуты 33 секунды)
   Заголовок сообщения:
   Ответить с цитатой

1. Ну, атрибут o=..., конечно, не очень хорошо делать. Потому как он нестандартный, и в XHTML его тоже нет. Давайте просто будем делать id, и присылать вместе с выделением все id элементов, которое это выделение зацепляет? Это, по-моему, достаточно универсальный метод.

2. Если я правильно понял, Вы хотите, чтобы перед отсылкой любой сторонний пользователь мог ввести куда-то исправленный вариант, и уже потом отправлять. Я правильно понял? Сейчас Орфус этого не умеет, т.к. полагает, что все исправления имеет право делать только редактор (а иначе юзеры такого наисправляют...). Вопрос: КТО тот пользователь, который делает выделение? Совершенно произвольный, со стороны, или же сам администратор сайта?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Дмитрий Кóтеров
Администратор



Зарегистрирован: 10.03.2003
Сообщ.: 13502
Карма: 383
   поощрить/наказать


СообщениеДобавлено: Сб Июл 28, 2007 3:44 am (спустя 1 минуту 51 секунду; написано за 15 секунд)
   Заголовок сообщения:
   Ответить с цитатой

И Вы еще не ответили насчет экспорта элементов (например, в RSS).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
rusec
Заглянувший



Зарегистрирован: 20.07.2007
Сообщ.: 6
Карма: 0
   поощрить/наказать

Откуда: Quito, Ecuador

СообщениеДобавлено: Сб Июл 28, 2007 4:29 am (спустя 45 минут; написано за 20 минут 59 секунд)
   Заголовок сообщения:
   Ответить с цитатой

1. Бог с ним, пусть будет id. Хотя это неправильно, потому как в FB2 у параграфа может уже быть id. Не очень понимаю, какая разница - написать selection.createRange().startContainer.o или selection.createRange().startContainer.id. Не важно. Пусть id.

2. В идеале - пользователь вводит правильный вариант, и оный вариант сохраняется в базе. Проблема простая. В библиотеке - сто тысяч книг. Пока. Будет больше.
И в каждой почти книге - ошибки сканирования, опечатки, и прочие глюки. Много. Несколько десятков на книгу. Всего потребны миллионы мелких исправлений.
Естественно, такой объем администратор сам править не сможет - жизни не хватит. Хочется автоматизации.
Хранить исходный вариант документа и список исправлений. Оный список администратор просматривает. Иногда. Если кто-нибудь начинает вандалить - он банится а его исправления откатываются или хотя-бы проверяются. Но, надеюсь, такого особо не будет. Во всяком случае исправления названий книг, имен авторов и т.п - уже работает, и проблем пока не было. Доступно всем.
Получается, нужно чтобы пользователь, заметив опечатку, ткнул в нужный параграф мышой, ткнул CtrlEnter, получил под курсором textarea с содержимым параграфа, с курсором в месте ошибки, поправил, ткнул save, поехал читать дальше. Минимально отвлекаясь. Или, если не хочет править, выделил ошибку мышой, ткнул, скажем, ShiftEnter, пошел читать дальше. В библиотеке на страничке замеченных опечаток появилась запись с ссылкой, любой пользователь в неё ткнул, получил textarea, поправил, ткнул кнопку (сохранить исправление и перейти к следующей ошибке). В переспективе подключить авторов читалок - чтоб сообшать об ошибке можно было прям с палма. Там есть о чем подумать, но невозможностей не видно.

Сейчас в лучшем случае это устроено так - выкачиваешь fb2, инсталируешь fb2-редактор, исправляешь, заливаешь обратно. Читая на пальме - отмечаешь ошибки на бумажке (я серьёзно!), далее по тексту. Понятно, что в таком режиме работают только совсем уж сугубые энтузиасты, а их мало. Никто из-за перепутанной буковки на такие труды не пойдет. Да и формат изучать ради этого как-то перебор. Хочется упростить до предела.

По поводу экспорта - честно говоря не понятно. Насколько быстро письмо дойдет до вашего сервера а rss вернется? Как это увязать с ajax-nline-редактированием?
Слаб я пока в интернет-технологиях, слова непонятные пугают. Извините.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дмитрий Кóтеров
Администратор



Зарегистрирован: 10.03.2003
Сообщ.: 13502
Карма: 383
   поощрить/наказать


СообщениеДобавлено: Сб Июл 28, 2007 1:19 pm (спустя 8 часов 49 минут; написано за 6 минут 54 секунды)
   Заголовок сообщения:
   Ответить с цитатой

rusec писал(а):
Не очень понимаю, какая разница - написать selection.createRange().startContainer.o или selection.createRange().startContainer.id
Потому что доработки в Орфусе делаются не конкретно под Вас, а делаются для универсальных целей, чтобы и другие люди могли ими пользоваться. Вы мне денег не платите за это, в конце концов. К тому же надо стремиться к соблюдению стандартов, а атрибут "o" ни в один стандарт не входит.

В принципе, есть еще вариант с микроформатами:

<p class="orphus_1234">текст</p>
<p id="some-id" class="orphus_6666">текст</p>

И сохранять вместе с текстом исправления также то, что идет после "orphus_". Это не будет конфликтовать с id-шниками. Вам такой вариант подходит?
rusec писал(а):
Насколько быстро письмо дойдет до вашего сервера а rss вернется?
А зачем здесь скорость? Главное, чтобы база ошибок велась. Все равно ведь администратор (или скрипт) не будет просматривать этот RSS мгновенно. Но, в принципе, данные попадают в RSS сразу же, как они попали в базу. А в базу они попадают сразу же после аякс-запроса. Так что задержка тут - исключительно задержка кэшировани rss-потока, т.е., скажем, 1 минута.
rusec писал(а):
Как это увязать с ajax-nline-редактированием?
А Вы что, хотите, чтобы любой читатель, изменив текст, СРАЗУ ЖЕ публиковал его на сайте, даже без одобрения администратора? По-моему, это не очень хорошая идея.

Мне кажется, пользователи сами ничего править не будут. Максимум, на что они способны, - это подсказать, где ошибка, а уж исправление должен проводить администратор или редакторы. В противном случае вандализма будет очень много - например, на текстах, где ошибок практически нет, 9/10 сообщений Орфуса - это баловство (у меня есть статистика).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
WingedFox
Профессионал



Зарегистрирован: 29.04.2003
Сообщ.: 3806
Карма: 227
   поощрить/наказать


СообщениеДобавлено: Сб Июл 28, 2007 1:59 pm (спустя 39 минут; написано за 4 минуты 1 секунду)
   Заголовок сообщения:
   Ответить с цитатой

rusec
Я в нескольких проектах пользую www.google.ru/search?q=wikiwyg - очень удобно.

Насчёт параметров в className - хранить <имя:значение1:значениеN> становися стандартом де-факто.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
rusec
Заглянувший



Зарегистрирован: 20.07.2007
Сообщ.: 6
Карма: 0
   поощрить/наказать

Откуда: Quito, Ecuador

СообщениеДобавлено: Вс Июл 29, 2007 1:05 am (спустя 11 часов 6 минут; написано за 10 минут 22 секунды)
   Заголовок сообщения:
   Ответить с цитатой

WingedFox писал(а):
Я в нескольких проектах пользую www.google.ru/search?q=wikiwyg - очень удобно.
Не знаком к сожалению.
Пара вопросов.
1.Оно может каким-то образом редактировать часть документа?
У нас есть книга, она весит мегабайт, а то и несколько, надо исправить одно слово. Засасывать в textarea всю книгу, а потом всю ее гнать обратно и на сервере далать diff - неправильно как-то. И неоправданно долго. Даже на приличном канале пару мег туда, пару обратно - заметно.
2. Оно понимает fb2-разметку? Или имеет возможность подключения плугина?
Если да на оба вопрост - пойду смотреть. Если нет - какая-то вики у меня стоит, но для вычитки книг оно непригодно. Аннотации, описания авторов - для таких вещей используется успешно, но это не та область, с которой хочется сильно возится. Работает - и ладно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
rusec
Заглянувший



Зарегистрирован: 20.07.2007
Сообщ.: 6
Карма: 0
   поощрить/наказать

Откуда: Quito, Ecuador

СообщениеДобавлено: Вс Июл 29, 2007 1:39 am (спустя 33 минуты; написано за 21 минуту 8 секунд)
   Заголовок сообщения:
   Ответить с цитатой

Дмитрий Кóтеров писал(а):
А Вы что, хотите, чтобы любой читатель, изменив текст, СРАЗУ ЖЕ публиковал его на сайте, даже без одобрения администратора? По-моему, это не очень хорошая идея.
Угу, хочу. Может быть, не любой пользователь, а некоторые. А может быть - и любой. В зависимости от редактируемого текста.
Так устроена wikipedia, и существует вполне успешно. Не без проблем, но премодерацию не заводит почему-то.
Дмитрий Кóтеров писал(а):
Мне кажется, пользователи сами ничего править не будут. Максимум, на что они способны, - это подсказать, где ошибка, а уж исправление должен проводить администратор или редакторы. В противном случае вандализма будет очень много - например, на текстах, где ошибок практически нет, 9/10 сообщений Орфуса - это баловство (у меня есть статистика).
Можете полюбопытствовать lib.rus.ec/node/49.
Статистика исправления пользователями информации о книгах и авторах (видна только админам, но Вам могу открыть).
В кратце - за неделю существования данной возможности десяток пользователей сделали две сотни поправок. Вандализма не было. Вообще.
Что интересно, мой опыт использования орфуса несколько лет назад с Вашей статистикой не вяжется. Было по несколько десятков сообщений в день, баловства не было. Совсем.
Изредка попадались сообщения, где я не мог понять в чём ошибка или был несогласен с тем, что это ошибка - русский язык дело такое, многовариантное. Явного бреда не было.
Сейчас на либрусеке то же самое - сообщения есть, немного, но есть, практически все по делу.
Видимо, книголожцы - это очень специальный контингент. Нелюбопытный до баловства.
Потом, я же оставляю за админами возможность контроля и отката. А премодерация слишком всё усложняет.
Безусловно, могут найтись книги, в которых начнутся войны. Эти - закроем.

Ну ладно, если уж Вы так против inline редактирования, оставим пока эту идею до лучших времен. Попробуем с rss.
Куда и как там надо добавить BookId и ParagrafId, чтоб Вам было удобно, и где забирать RSS?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
WingedFox
Профессионал



Зарегистрирован: 29.04.2003
Сообщ.: 3806
Карма: 227
   поощрить/наказать


СообщениеДобавлено: Вс Июл 29, 2007 11:41 am (спустя 10 часов 2 минуты; написано за 3 минуты 16 секунд)
   Заголовок сообщения:
   Ответить с цитатой

rusec писал(а):
Оно может каким-то образом редактировать часть документа?
demo.wikiwyg.net/wikiwyg/demo/standalone/
Двойной щелчок на любом параграфе.
rusec писал(а):
Оно понимает fb2-разметку?
Первый раз про такую слышу. Там есть возможность описать правила разметки.
wikiwyg.net/docs/#subclassing
demo.wikiwyg.net/wikiwyg/demo/configure/

Последний раз редактировалось: WingedFox (Вс Июл 29, 2007 3:36 pm), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
rusec
Заглянувший



Зарегистрирован: 20.07.2007
Сообщ.: 6
Карма: 0
   поощрить/наказать

Откуда: Quito, Ecuador

СообщениеДобавлено: Вс Июл 29, 2007 12:16 pm (спустя 34 минуты; написано за 4 минуты 2 секунды)
   Заголовок сообщения:
   Ответить с цитатой

WingedFox писал(а):
rusec писал(а):
Оно может каким-то образом редактировать часть документа?
demo.wikiwyg.net/wikiwyg/demo/standalone/
Двойной щелчёк на любом параграфе.
Любопытно.
Пошел изучать, спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
bæv
Модератор «Дзена»



Зарегистрирован: 27.08.2003
Сообщ.: 4151
Карма: 99
   поощрить/наказать


СообщениеДобавлено: Вс Июл 29, 2007 3:04 pm (спустя 2 часа 47 минут; написано за 47 секунд)
   Заголовок сообщения:
   Ответить с цитатой

WingedFox писал(а):
щелчёк
— вот она, «грамотность в интернете»...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
WingedFox
Профессионал



Зарегистрирован: 29.04.2003
Сообщ.: 3806
Карма: 227
   поощрить/наказать


СообщениеДобавлено: Вс Июл 29, 2007 3:36 pm (спустя 31 минуту; написано за 1 минуту 21 секунду)
   Заголовок сообщения:
   Ответить с цитатой

bæv
Спасибо.
Вот что перманентная переписка на ино-языках помноженная на недосып делает.....
А в аттестате стоит пятёрка...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дмитрий Кóтеров
Администратор



Зарегистрирован: 10.03.2003
Сообщ.: 13502
Карма: 383
   поощрить/наказать


СообщениеДобавлено: Вт Июл 31, 2007 2:42 am (спустя 1 день 11 часов 6 минут; написано за 9 минут 2 секунды)
   Заголовок сообщения:
   Ответить с цитатой

rusec писал(а):
Так устроена wikipedia, и существует вполне успешно. Не без проблем, но премодерацию не заводит почему-то.
Штука в том, что в wikipedia любую правку можно легко и быстро отменить. Можно также легко вернуться к одной из предыдущих версиях.
В Вашем же случае правки отменять будет достаточно тяжело. Либо надо делать версионность, но это уже совсем-совсем не Орфус.
WingedFox писал(а):
хранить <имя:значение1:значениеN> становися стандартом де-факто
Отлично. Значит, будет class="orphus:id:123".
rusec писал(а):
Куда и как там надо добавить BookId и ParagrafId, чтоб Вам было удобно, и где забирать RSS?
Например, так:

<div class="orphus:id:b123">
  ...
  <p class="orphus:id:p456">текст</p>
  ...
</div>

В этом случае Орфус будет спускаться вниз до корня, выделяя "orphus:id:*" и добавляя в общий список. Вам же в RSS придет для каждого выделения список вида "b123 p456" (в каком именно поле RSS, надо еще подумать), по нему легко восстановить место выделения. Кстати, возможно, лучше даже и не RSS использовать, а какой-нибудь собственный XML-формат, потому что в RSS мало полей. Например, формат такой:

<typo>
  <url>...</url>
  <pre>текст перед выделением</pre>
  <sel>текст выделения</sel>
  <suf>текст после выделения</suf>
  <ids>b123 p456</ids>
  ...
</typo>
<typo>
  ...
</typo>

Забирать его с адреса вида orphus.ru/ru/typos.xml (пока не работает, естественно), обновляется 1 раз в минуту.

Вопрос к Вам: достаточно ли Вам будет такого API? Лучше это сейчас выяснить, на этапе планирования, чем потом.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Дмитрий Кóтеров
Администратор



Зарегистрирован: 10.03.2003
Сообщ.: 13502
Карма: 383
   поощрить/наказать


СообщениеДобавлено: Вт Июл 31, 2007 2:56 am (спустя 13 минут; написано за 1 минуту 17 секунд)
   Заголовок сообщения:
   Ответить с цитатой

Кстати, на странице orphus.ru/ru/typos (смотреть после логина) планируется ввести редактируемое поле "правильная версия". Там можно будет предварительно вводить исправленную версию текста, и оно тоже будет экспортироваться в XML (например, в поле "cor").
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Дмитрий Кóтеров
Администратор



Зарегистрирован: 10.03.2003
Сообщ.: 13502
Карма: 383
   поощрить/наказать


СообщениеДобавлено: Пн Мар 17, 2008 1:28 am (спустя 7 месяцев 16 дней 22 часа 32 минуты; написано за 29 секунд)
   Заголовок сообщения:
   Ответить с цитатой

Добавился RSS-формат для экспорта опечаток из Орфуса.
В частности, можно экспортировать опечатки по определенному фильтру (поисковой строке).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начaть нoвую тeму   Ответить на тему Часовой пояс: GMT + 4 (Москва, Лето)
Страница 1 из 1    Отправить ссылку другу
Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать в опросах. Вы можете отправлять сообщение модераторам. Вы не можете прилагать файлы к сообщениям. Вы можете скачивать файлы.