[ID CC-CC2022] Изменение импортированных комментариев

  • Автор темы Автор темы veretragna
  • Дата начала Дата начала
И почему эти комментаторы не могут быть порабощены ИнКопи?
 
Ну примерно так оно и есть. Но не совсем.
1602011430622.png
 
Последнее редактирование:
И почему эти комментаторы не могут быть порабощены ИнКопи?
В этот раз клиент захотел, чтобы проект проверили его лингвисты. А как работают лингвисты клиента - черный ящик.
 

Не по теме:

чем грузины?


Не по теме:
Вот есть у тебя приложение, которое одинаково работает едва ли не на всех устройствах, где ты можешь достаточно легко вносить правки. Зачем специализированный софт?
 
  • Спасибо
Реакции: ~RA~

Не по теме:

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

 
Я смотрел, что на что менять надо, а потом этот вопрос, вот и скриншотнул.
 
Ты что, всерьез думал, что можно просто так взять и поменять прямо в коде один тип Annot на другой?
 
Да ты посмотри, там же совершенно разная структура на каждый тип коммента, формализовать до корректной прямо в коде - застрелиться можно, в сто раз проще из яваскрипта заново пересоздавать аннотации.
 
Возможно все - даже из спичек и желудей МонуЛизу выложить, но зачем? Тем более она уже есть готовая ;) Но в номинации на самое извращенное решение ты пока победитель 'cooll)'':=)'
 
'beer1'
 
А вот скрипт для Acrobat, который меняет Highlights на "Замените текст".
JavaScript:
function uuidv4() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
}

function obRemAnnots () {
    var remove = [];
    var annots = this.getAnnots();
    for (var i = 0; i < annots.length; i++) {
        if (annots[i].author == 'Annot Robout') {
            remove.push(annots[i]);
        }
    }
    remove.reverse();
    for (var i = 0; i < remove.length; i++) {
        remove[i].destroy();
    }
}

function obAddAnnots () {
    var annots = this.getAnnots();
    var remove = [];
    for (var i = 0; i < annots.length; i++) {
        if (annots[i].type == 'Highlight' && annots[i].contents.indexOf('Change to: ') == 0) {
            remove.push(annots[i]);
            var page = annots[i].page;
            var rect = annots[i].rect;
            var height = rect[3] - rect[1];
            var quads = annots[i].quads
            var contents = annots[i].contents.replace('Change to: ', '');
            var uid = uuidv4();
            this.addAnnot({
                page: page,
                type: 'StrikeOut',
                quads: quads,
                author: 'Annot Robout',
                contents: '',
                inReplyTo: uid,
                intent: 'StrikeOutTextEdit',
                strokeColor: ['RGB',0,0,1],
                refType: 'Group',
                style: 'S',
                subject: 'Replace Text',
            });
            this.addAnnot({
                page: page,
                type: 'Caret',
                rect: [rect[2] - height / 2, rect[1], rect[2], rect[3] - height / 1.5],
                author: 'Annot Robout',
                name: uid,
                intent: 'Replace',
                contents: contents,
                refType: 'R',
                style: 'S',
                subject: 'Replace Text',
            });
        }
    }
    remove.reverse();
    for (var i = 0; i < remove.length; i++) {
        remove[i].destroy();
    }
}

obRemAnnots();
obAddAnnots();


Не по теме:
Чуть исправил для внешнего вида.
 
Последнее редактирование:
А все вкурил, ты сперва удаляешь свои коменты если они случайно есть а затем из одного комента делаешь два?