Esempio n. 1
0
    def mark_spoilers(self, text):
        # Список содержимого тегов <!--spoiler_text--><!--spoiler_text_end-->.
        content_spoiler_list = sre_spoiler.findall(self.data)
        old_text = ""

        for content_spoiler in content_spoiler_list:
            try:
                content_spoiler = html_parser(content_spoiler)
            except UnicodeDecodeError:
                content_spoiler = html_parser(content_spoiler.encode("utf-8"))

            try:
                old_par, par = text.split(content_spoiler)
                old_text += "{}\n{}{}{}\n{}".format(old_par,
                                                    self.spoiler_mark_tag[0],
                                                    content_spoiler,
                                                    self.spoiler_mark_tag[1],
                                                    par)
                text = old_text
                old_text = ""
            except ValueError:
                continue

        return text
Esempio n. 2
0
            return marker

        mark_text = sre_image.sub(replace, text)
        return mark_text


if __name__ in ["__main__", "android"]:
    data = """
<text>
<![CDATA[
  <div align="left" style="margin:3px; padding:5px; border:1px dashed gray;" >В данной теме обсуждаем мобильные ide, делимся опытом. <br />Несколько полезных моментов собрано во втором посте темы.<br /><b>anjedi</b><br /> <img src="http://msg.dimonvideo.ru/sklad/files/558747/8c_unnamed.png"  style='max-width: 320px;' />  <br /><b>проект давным давно был заброшен и дальнейшего развития не получил </b>          <br /> <!--dle_spoiler описание --><div class="title_spoiler"><a href="j&#097;vascript:ShowOrHide('spd0d4a6341429a35ce3de46f9f07b05a4')"><img id="image-spd0d4a6341429a35ce3de46f9f07b05a4" style="vertical-align: middle;border: none;" alt="" src="http://dimonvideo.ru/templates/dimon/dleimages/spoiler-plus.gif" /></a>&nbsp;<a href="j&#097;vascript:ShowOrHide('spd0d4a6341429a35ce3de46f9f07b05a4')"><!--spoiler_title-->описание<!--spoiler_title_end--></a></div><div id="spd0d4a6341429a35ce3de46f9f07b05a4" class="text_spoiler" style="display:none;"><!--spoiler_text--> Вы можете использовать Android java editor чтобы поработать над своим проектом в дороге, получив файлы с svn, быстро изменить их и загрузить в репозиторий. Можно использовать этот инструмент, чтобы быстро реализовать идею которая пришла к вам в голову, когда под рукой нет компьютера. При этом можно создать работающий шаблон проекта с помощью пары кнопок и скомпилировать его прямо на устройстве. Со временем это приложение, возможно, станет полноценным интегрированным окружением разработчика, способным заменить традиционные IDE вместе с тем, как планшет и смартфон будут заменять ему обычный компьютер. <!--spoiler_text_end--></div><!--/dle_spoiler--><br /> <!--dle_spoiler особенности --><div class="title_spoiler"><a href="j&#097;vascript:ShowOrHide('sp3965a8cff295fc24b49aaba12c7a9493')"><img id="image-sp3965a8cff295fc24b49aaba12c7a9493" style="vertical-align: middle;border: none;" alt="" src="http://dimonvideo.ru/templates/dimon/dleimages/spoiler-plus.gif" /></a>&nbsp;<a href="j&#097;vascript:ShowOrHide('sp3965a8cff295fc24b49aaba12c7a9493')"><!--spoiler_title-->особенности<!--spoiler_title_end--></a></div><div id="sp3965a8cff295fc24b49aaba12c7a9493" class="text_spoiler" style="display:none;"><!--spoiler_text--> <br />&#9733;В приложении размером менее 3 Mb реализован набор инструментов для полноценной разработки Android-приложения: мастер нового проекта, простой файловый менеджер, SVN-клиент и все утилиты для сборки полноценного apk <br />&#9733;Простой интерфейс нацелен на то, чтобы снять с программиста все посторонние задачи, позволить ему сосредоточиться на программировании. <br />&#9733;возможность собирать apk файлы без помощи пк(разборка так же в ближайших планах по развитию. <br />&#9733;удобный редактор с подцветкой синтаксиса. <!--spoiler_text_end--></div><!--/dle_spoiler--><br /> <!--dle_spoiler лог изменений --><div class="title_spoiler"><a href="j&#097;vascript:ShowOrHide('sp3d43d15b23fc1a899a02e1ba5f9eea1f')"><img id="image-sp3d43d15b23fc1a899a02e1ba5f9eea1f" style="vertical-align: middle;border: none;" alt="" src="http://dimonvideo.ru/templates/dimon/dleimages/spoiler-plus.gif" /></a>&nbsp;<a href="j&#097;vascript:ShowOrHide('sp3d43d15b23fc1a899a02e1ba5f9eea1f')"><!--spoiler_title-->лог изменений<!--spoiler_title_end--></a></div><div id="sp3d43d15b23fc1a899a02e1ba5f9eea1f" class="text_spoiler" style="display:none;"><!--spoiler_text-->[/spoiler]<br />[spoiler=видео-помощь]<!--dle_youtube_begin:http://www.youtube.com/watch?feature=player_embedded&v=bAI5lwJ0uHo--><object width="425" height="325"><param name="movie" value="http://www.youtube.com/v/bAI5lwJ0uHo&hl=ru&fs=1"></param><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/bAI5lwJ0uHo&hl=ru&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="325"></embed></object><!--dle_youtube_end--><!--spoiler_text_end--></div><!--/dle_spoiler--><br /> <noindex><a href="http://m.dimonvideo.ru/uploader/382217">скачать Android java editor 1.5.1</a></noindex>  <br /><b>Aide</b><br /> <img src="http://msg.dimonvideo.ru/sklad/files/558747/e90_aide-android-java-ide_icon.png"  style='max-width: 320px;' />             <br /> <!--dle_spoiler описание --><div class="title_spoiler"><a href="j&#097;vascript:ShowOrHide('spd99e12e54754d6b379437d6718d94441')"><img id="image-spd99e12e54754d6b379437d6718d94441" style="vertical-align: middle;border: none;" alt="" src="http://dimonvideo.ru/templates/dimon/dleimages/spoiler-plus.gif" /></a>&nbsp;<a href="j&#097;vascript:ShowOrHide('spd99e12e54754d6b379437d6718d94441')"><!--spoiler_title-->описание<!--spoiler_title_end--></a></div><div id="spd99e12e54754d6b379437d6718d94441" class="text_spoiler" style="display:none;"><!--spoiler_text--> aide(android java editor) -новая мобильная ide для андроид. Благ<!--colorstart:#FF9900--><span style="color:#FF9900"><!--/colorstart--><!--colorend--></span><!--/colorend-->одаря ей вы сможете работать над своими проектами даже тогда когда под рукой нет пк. Для этого в программе есть все необходимое. Нет конечно, никто не говорит что данная ide конкурент eclipse, однако очень удобная штука, особенно на планшете. У автора асус трансформер прайм -на нем думаю работать одно удовольствие. В планах команды проекта -создание полноценной мобильной среды разработки. <!--spoiler_text_end--></div><!--/dle_spoiler--><br /> <!--dle_spoiler особенности --><div class="title_spoiler"><a href="j&#097;vascript:ShowOrHide('spe7d92065c96ce2e0b53964fb5766d932')"><img id="image-spe7d92065c96ce2e0b53964fb5766d932" style="vertical-align: middle;border: none;" alt="" src="http://dimonvideo.ru/templates/dimon/dleimages/spoiler-plus.gif" /></a>&nbsp;<a href="j&#097;vascript:ShowOrHide('spe7d92065c96ce2e0b53964fb5766d932')"><!--spoiler_title-->особенности<!--spoiler_title_end--></a></div><div id="spe7d92065c96ce2e0b53964fb5766d932" class="text_spoiler" style="display:none;"><!--spoiler_text--><br />&#9733;удобная структура интерфейса(две панели - редактор кода, файловый менеджер) <br />&#9733;редактор с подсветкой кода <br />&#9733;автодополение кода, отлов ошибок(подобно как в eclips). <br />&#9733;компиляция, сборка проекта(клавиша run в меню) <br />&#9733;logCat, лог ошибок. <br />&#9733;удобный поиск строк в коде. <!--spoiler_text_end--></div><!--/dle_spoiler--><br /> <!--dle_spoiler лог изменений --><div class="title_spoiler"><a href="j&#097;vascript:ShowOrHide('sp13a3778dbd1f4103db82331fe8a979e0')"><img id="image-sp13a3778dbd1f4103db82331fe8a979e0" style="vertical-align: middle;border: none;" alt="" src="http://dimonvideo.ru/templates/dimon/dleimages/spoiler-plus.gif" /></a>&nbsp;<a href="j&#097;vascript:ShowOrHide('sp13a3778dbd1f4103db82331fe8a979e0')"><!--spoiler_title-->лог изменений<!--spoiler_title_end--></a></div><div id="sp13a3778dbd1f4103db82331fe8a979e0" class="text_spoiler" style="display:none;"><!--spoiler_text--><br /><b>v 1.0 beta9: </b><br /> возможность сборки любых проектов имеющих стандартную структуру. &quot; исправлено: не работали комбинации клавиш на некоторых устройствах.<br /><b>v 1.0.beta10 </b><br />New: Dropbox integration<br />New: Search in editor<br />Improved: JAR library handling<br />Improved: Open images from file browser<br />Improved: Allow moving to SDCARD<br />Improved: Pushed back beta update notification<br />Fixed: Several compiler/build issues<br /><b>v 1.0.beta12:</b><br />Changes:<br />New: Support for Android on x86<br />Improved: Binary files are no longer opened in editor<br />Fixed: Issues with Dropbox integration<br />Fixed: Problems on devices without /mnt/sdcard<br /><b>v 1.0.beta14:</b><br />New: Git integration - Commit/Discard/Push/Pull, ssh support<br />New: Build support for .aidl files<br />New: Configurable coding style<br />New: Create class... in Files browser<br />Improved: Editor performance <br />Improved: Memory usage<br />Fixed: Soft keyboard disappearing<br />Fixed: Building did not work on Acer Iconia A200/A500 tablets<br />Fixed: Keys inserted twice with HTC Sense soft keyboard<br />Fixed: Multiple compiler/build issues<br /><b>v 1.0.beta15:</b><br />New: Signing with custom key<br />New: Support for Android library projects<br />Improved: Performance, memory usage<br />Fixed: Compiler issues<br /><b>v 1.0.beta17:</b><br />New: Publish APK wizard<br />New: Create keystore<br />Fixed: Compiler issues<br />v.2.2.3:<br />Добавлены новые функции в меню быстрого доступа<br /><!--spoiler_text_end--></div><!--/dle_spoiler--><br /> <!--dle_spoiler видео-помощь --><div class="title_spoiler"><a href="j&#097;vascript:ShowOrHide('sp59defe3286410f21dbb3b3385be85645')"><img id="image-sp59defe3286410f21dbb3b3385be85645" style="vertical-align: middle;border: none;" alt="" src="http://dimonvideo.ru/templates/dimon/dleimages/spoiler-plus.gif" /></a>&nbsp;<a href="j&#097;vascript:ShowOrHide('sp59defe3286410f21dbb3b3385be85645')"><!--spoiler_title-->видео-помощь<!--spoiler_title_end--></a></div><div id="sp59defe3286410f21dbb3b3385be85645" class="text_spoiler" style="display:none;"><!--spoiler_text--><!--dle_youtube_begin:http://www.youtube.com/watch?feature=player_embedded&v=NGT9MqT3W2w--><object width="425" height="325"><param name="movie" value="http://www.youtube.com/v/NGT9MqT3W2w&hl=ru&fs=1"></param><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NGT9MqT3W2w&hl=ru&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="325"></embed></object><!--dle_youtube_end--><!--spoiler_text_end--></div><!--/dle_spoiler--><br /> <noindex><a href="http://m.dimonvideo.ru/uploader/386125">aide (мобильная среда разработки) 2.2.3</a></noindex><br /><b>DroidScript</b><br /> <img src="http://msg.dimonvideo.ru/sklad/files/558747/de4_androidscripticon-e1385816816342.png"  style='max-width: 320px;' />        <br /> <!--dle_spoiler описание --><div class="title_spoiler"><a href="j&#097;vascript:ShowOrHide('spa35ccb99d9f4bc13e6014f40ae4de7c0')"><img id="image-spa35ccb99d9f4bc13e6014f40ae4de7c0" style="vertical-align: middle;border: none;" alt="" src="http://dimonvideo.ru/templates/dimon/dleimages/spoiler-plus.gif" /></a>&nbsp;<a href="j&#097;vascript:ShowOrHide('spa35ccb99d9f4bc13e6014f40ae4de7c0')"><!--spoiler_title-->описание<!--spoiler_title_end--></a></div><div id="spa35ccb99d9f4bc13e6014f40ae4de7c0" class="text_spoiler" style="display:none;"><!--spoiler_text--><br />программа поможет легко написать приложения для смартфона или планшета используя j&#097;vascript. При этом нет необходимости в ПК, просто редактируйте код непосредственно на устройстве.<br />Однако есть возможность отладки и написания при помощи подключения к пк через wi-fi.<!--spoiler_text_end--></div><!--/dle_spoiler--><br /> <!--dle_spoiler особенности --><div class="title_spoiler"><a href="j&#097;vascript:ShowOrHide('spcb32ad3d44ca35eef4f5b4f8fd97f696')"><img id="image-spcb32ad3d44ca35eef4f5b4f8fd97f696" style="vertical-align: middle;border: none;" alt="" src="http://dimonvideo.ru/templates/dimon/dleimages/spoiler-plus.gif" /></a>&nbsp;<a href="j&#097;vascript:ShowOrHide('spcb32ad3d44ca35eef4f5b4f8fd97f696')"><!--spoiler_title-->особенности<!--spoiler_title_end--></a></div><div id="spcb32ad3d44ca35eef4f5b4f8fd97f696" class="text_spoiler" style="display:none;"><!--spoiler_text--><br />- Добавление кнопок, текста, графики.( и другие элементы интерфейса).<br />- Доступен GPS, компас, камера, акселерометр. <br />- Отправка и получение электронных писем. <br />- Отправка и получение SMS. <br />- Общаться с ПК через Wi-Fi. <br />- Создание шорткатов на рабочем столе <br />- Вы можете использовать родной webview или HTML5 . <br />- Возможность нааписания простенькой игры. <br />- Хорошая, подробная документация<br />- большое количество примеров кода.<br />- запаковка скриптов в полноценный apk<!--spoiler_text_end--></div><!--/dle_spoiler--><br /> <!--dle_spoiler лог изменений --><div class="title_spoiler"><a href="j&#097;vascript:ShowOrHide('sp95b50d99db62086c7a41bb092241998d')"><img id="image-sp95b50d99db62086c7a41bb092241998d" style="vertical-align: middle;border: none;" alt="" src="http://dimonvideo.ru/templates/dimon/dleimages/spoiler-plus.gif" /></a>&nbsp;<a href="j&#097;vascript:ShowOrHide('sp95b50d99db62086c7a41bb092241998d')"><!--spoiler_title-->лог изменений<!--spoiler_title_end--></a></div><div id="sp95b50d99db62086c7a41bb092241998d" class="text_spoiler" style="display:none;"><!--spoiler_text--><br />Добавлено 2 образца игр.<br />Добавлен Аудио синтезатор.<br />Добавлен пример использование Вкладок.<br />исправлены различные ошибки редактора.<br />Быстрый пуск скрипта.<br />исправление ошибок связанных с отладкой.<!--spoiler_text_end--></div><!--/dle_spoiler--><br /><noindex><a href="http://m.dimonvideo.ru/uploader/431442">DroidScript 1.22</a></noindex></div>
  <pre class="brush: python"><br />from kivy.uix.boxlayout import BoxLayout<br /></pre>
]]>
</text>
"""

    text = TextMarker(["KIVY-REF-START", "KIVY-REF-END"],
                      ["SPOILER-START", "SPOILER-END"],
                      ["CODE-START", "CODE-END"],
                      ["python", "cpp", "php", "xml", "delphi", "css"],
                      "KIVY-REF-SCR", data)
    text_with_mark_scr = text.mark_image(data)
    text_with_mark_code = text.mark_code(text_with_mark_scr)
    text_with_mark_links = text.mark_links(text_with_mark_code)
    parse_text = html_parser(text_with_mark_links)
    text_with_mark_spoilers = text.mark_spoilers(parse_text)

    print(parse_text)
    print(text.dict_link)
    print(text.dict_link_scr)