Яндекс. Директ. Учебник начинающего рекламодателя. Повышение CTR объявлений / Хабр
Впрочем, общий термин «повышение CTR» не совсем точен, в данном случае уместно говорить о повышении кликабельности по каждому конкретному ключевому запросу. На странице «Помощь» Яндекс Директа на этот счет даны толковые советы (на официальном языке), но мы расширим границы познания и более подробнее остановимся (на менее официальном) на ключевых моментах.
Итак, как известно, CTR – это отношение кликов к показам в процентном выражении. Принято считать, что чем выше CTR, тем выше эффективность объявления. Безусловно, если объявление составлено правильно (не с вашей, а с точки зрения покупателя), а конверсия – высокая. Но высокий показатель CTR порой априори не означает хорошую конверсию, а скорее наоборот.
Например, покупка запроса «скачать mp3» даст чудовищно высокий CTR и низкую конверсию. Ведь не факт, что все ищущие купят у вас музыку, т.к. пользователь волен прицепить к запросу название любимой группы, и все ваши деньги уйдут в песок. По этой же причине, чем более сфокусировано до разумных, вернее, до необходимых пределов объявление, тем выше CTR и конверсия, так сказать в комплекте.
Итак, основные советы по повышению CTR основаны лишь на логике и здравом смысле, без пафосных заявлений «бренд», «узнаваемость», «цеплять внимание» и прочей лабуды.
1. Заголовок объявления должен содержать искомый запрос пользователя, желательно с учетом морфологии. Например по запросу «термоядерные боеголовки» вы обязаны показывать заголовок «Термоядерные боеголовки – доставка в ваш город»
2. В тексте объявления необходимо отражать точные запросы пользователей, (можно и два раза в разных склонениях), плюс самое частотное слово из правой колонки «что еще искали люди».
3. Включайте логику, пользуйтесь поисковыми операторами Директа (далее сами додумывайте). Запросы «боеголовка» и «! боеголовки» могут иметь совершенно разный CTR. Совет: присмотритесь к своим товарам и подумайте о том, как покупатели их ищут.
4. Отсекайте мусор на входе. Минусуйте стоп-слова до потери сознания. Подходите к этому вопросу с особой тщательностью. На финишной прямой при очень жесткой конкуренции одно лишнее стоп-слово в Яндекс Директе способно вывести вас в лидеры, а конкурента отправить к праотцам.
Составьте список стандартных стоп слов вашей тематики (-форум -реферат -скачать -курсовая -обзор -статьи -рынок -исследование -бизнес -отзывы -каталог -бла -бла -бла) и в базе заносите их в директ к каждому купленному ключевому слову.
Кроме того, не забывайте про фантазию пользователей – это необычайно развитая штука. Посему старайтесь справиться со своим эго, абстрагируйтесь от своего любимого бизнеса и начните «думать как пользователь». И тогда вы обязательно найдете еще стоп-слова, которых нет в форме подбора слов.
5. Примите за правило: «Одно объявление – одно ключевое слово». Таким методом вы страхуете свою рекламную кампанию от возможных ошибок – не сжигайте за собой мосты. Следуя этому правилу, вы всегда сможете понять, где ошиблись и опертивно вмешиваться в ход рекламной кампании.
6. Не пренебрегайте геотаргетингом, это отличнейший инструмент в умелых руках. Не ленитесь, формируйте региональные кампании.
Нет необходимости показывать объявление о продаже элитных щенков в Москве пользователю из Красноярска. Таким образом вы плодите лишние показы, которые приводят к снижению эффективности объявления в целом и, в конечном итоге, – к повышению ваших ставок.
Кроме того, разбивка объявлений по регионам дает вам свободу действий и мобильность на поле боя. Предположим, вы работаете по всей России. Очень хорошо. Показывая объявление всей стране, вы лишаете себя возможности быстро увидеть действующие ставки и статистику по переходам из каждого конкретного региона – придется часами сидеть в интерфейсе статистики и вычленять города. Или же держать целый аналитический отдел бездельников, которые сожрут всю прибыль конторы.
Возможно, что ваш товар пользуется спросом только в определенных городах. В случае широкого геотаргетинга смутные сомнения будут постоянно терзать вас, и вы так и не узнаете, «где плавает крупная рыба», ведь клики размажутся по всей необъятной стране.
Вывод напрашивается сам. Все банально: дробите объявления на отдельные регионы и получите 100% управляемую рекламную кампанию в каждом из них.
7. Выключайте кампании ночью или запускайте в работу копии основных кампаний по более низким ставкам. Отметим, что в некоторых тематиках ночная активность покупателей гораздо выше в светлое время суток.
8. Работайте и в выходные дни. Совет для поднятия CTR или, если точнее, совет для тех, кто нацелен на звание «Царь горы» (вход в Спецразмещение). Именно в выходные конкуренты пьют пиво в тот момент, когда вы безнаказанно и спокойно ставите капкан, который переломает им всю рекламную кампанию.
9. Пишите заголовки простым, понятным, человеческим языком. Будьте проще. Пошлите ко всем чертям дурацкий креатив. Люди не так умны, как вам кажется. Не применяйте в текстах сложную терминологию – как только человек читает что-то сложное и не понимает о чем речь, в нем сразу же просыпаются самые дремучие комплексы. Представьте, что клиент сидит перед вами и вам нужно за пару минут простым языком представить и продать свой товар.
10. Перестаньте заявлять про «низкие цены». Указывать цену можно, но учтите, тоже самое могут сделать конкуренты (а цену снизить может любой дурак). Если вы, конечно, не единоличный лидер на рынке. В противном случае, при нападении мелких конкурентов со всех сторон, можно и нужно демпинговать, пока противники не начнут вылетать из Директа, как пробки из бутылки шампанского.
17 книг для PPC-специалистов по контекстной рекламе, маркетингу, копирайтингу и веб-аналитике
Мы собрали книги, которые стоит прочитать специалисту по контекстной рекламе. Часть из них ориентирована на новичков и содержит пошаговые инструкции по настройке первых кампаний. Другие — помогут опытным специалистам лучше разобраться в нюансах работы директолога, например, в сборе ключевых фраз или веб-аналитике.
Для удобства мы разделили книги на 4 темы — контекстная реклама, маркетинг, копирайтинг и аналитика. Пишите в комментариях, что ещё может пригодиться!
Контекстная реклама
«Яндекс.Директ. Как получать прибыль, а не играть в лотерею» | |
Издательство «Питер», 2019. Купить книгу на «ЛитРес» | Первую книгу по Директу специалист-практик и руководитель агентства контекстной рекламы Филипп Царевский написал в 2016 году. По его словам, учебник был «заточен под малый бизнес — услуги, магазины, производства». Автор решил регулярно обновлять книгу с учётом новых инструментов. |
Последнее издание появилось в магазинах в 2019 году — это до сих пор одна из наиболее качественных работ по Директу. Рекомендации и примеры из книги будут еще актуальны в ближайшую пятилетку.
Чем полезна. Охватывает все аспекты, влияющие на эффективность рекламы в Директе, — от анализа продукта и разработки уникального торгового предложения до А/Б-тестов и поддержки рекламных кампаний.
Книга хороша тем, что позволяет увидеть весь процесс целиком, понять логику и выстроить системный подход. Местами не хватает детализации, но если вы знаете, что искать, то без труда восполните пробелы в справке Яндекса или в экспертных статьях.
Об авторе. Филипп Царевский — специалист и в прошлом руководитель агентства контекстной рекламы. Помимо настройки и ведения клиентских РК, обучал Директу начинающих специалистов и предпринимателей. Агентство и обучающие проекты перестали существовать в 2019 году.
«Эффективная реклама в Яндекс.Директ. Практическое руководство для тех, кто хочет получить максимальную прибыль от контекстной рекламы» | |
Издательство Манн, Иванов и Фербер, 2015 г. | Константин Живенков сделал упор на практику, поэтому теории в книге мало. Руководство состоит из практических приемов и конкретных решений. Правда, часть информации уже устарела, так как книга написана в 2015 году. Но некоторые советы о том, как повысить отдачу от рекламы в Директе, можно использовать и сейчас. |
Чем полезна. Читатели, уже немного знакомые с Директом, найдут в книге тонкости настройки, до которых сами бы доходили через ошибки и слив бюджета. Приемы и решения, о которых пишет Константин, помогут повысить кликабельность (CTR) объявлений, уменьшить количество нецелевых кликов, оптимизировать временные затраты на сбор семантики и настройку кампаний.
Об авторе. Константин Живенков — предприниматель и инфобизнесмен, автор нескольких вебинаров и курсов по контекстной рекламе.
«Как составить семантическое ядро для эффективной рекламы в Яндекс.Директ» | |
Скачать бесплатно на сайте агентства MOAB | Пошаговый план по составлению семантического ядра от основателя маркетингового агентства. Автор книги Илья Исерсон считает, что качественно собрать ключевые слова можно только вручную. В своей книге он даёт методику, как это делать правильно и с наименьшими трудозатратами. |
Чем полезна. Читатели узнают, как собирать семантику без использования каких-либо программ и разберут участки работы, которые невозможно автоматизировать. Также в книге даются советы, как балансировать между качеством семантического ядра и временем, ведь собирать идеальные ключевики можно бесконечно.
Об авторе. Илья Исерсон — владелец маркетингового агентства MOAB, преподаватель и автор курсов по контекстной рекламе.
Сэкономить время и автоматизировать другие этапы ведения контекстной рекламы поможет Сеодроид. Он автоматически скорректирует ставки по заданным параметрам, подготовить удобные и понятные отчеты для проработки минус-слов и чистки площадок РСЯ, разметит ссылки UTM-метками и сгенерирует кампанию для большого количества товаров или услуг.
«Контекстная реклама, которая работает. Библия Google AdWords» | |
Издательство «Манн, Иванов и Фербер», 2014 | До сих пор самая популярная книга по контекстной рекламе в Google Ads (раньше назывался Google AdWords). Хотя она написана в 2014 году, ничего лучшего за это время так и не вышло. Считается главным учебником для всех начинающих специалистов независимо от платформы контекстной рекламы — Директ или Google Ads. |
Чем полезна. Цель автора книги — научить читателя делать кликабельную рекламу за меньшие деньги. Поэтому здесь вы найдёте множество примеров удачной и неудачной рекламы. С помощью книги вы поймете, как планировать кампанию в Google Ads, составлять привлекательные объявления, а также анализировать маркетинговые KPI.
Об авторах. Перри Маршалл — бизнес-консультант, автор книг по маркетингу, основатель консалтинговой компани. Брайан Тодд — один из ведущих экспертов по Google Ads
«Комплекс платных каналов: начни тотальную охоту на клиентов«mark | |
Редакция блога Ingate, 2019. Скачать бесплатно на сайте агентства Ingate | Контекстная реклама — важный, но не единственный способ привлечение клиентов. Об этом напоминают специалисты агентства Ingate. В своей книге они решили показать все преимущества мультиканального подхода. На примерах реальных кейсов они разбирают эффективность комплекса из контекстной рекламы, медийных объявлений, ремаркетинга и таргетинга в соцсетях. Книгу можно скачать бесплатно с сайта Ingate. |
Чем полезна. Вы узнаете, как работает воронка продаж, на каком этапе сделки пользователи совершают покупку и как подогревать их на этом пути с помощью разных маркетинговых инструментов. В книге также даны рекомендации, которые помогут выбрать наилучший источник трафика для продукта.
Об авторах. Авторы книги — специалисты агентства с практическим опытом. В серии «Спроси у Ingate» есть и другие книги о контекстной рекламе, поисковом продвижении Instagram для бизнеса и другие.
Маркетинг
«Не заставляйте меня думать. Веб-юзабилити и здравый смысл» | |
Издательство Эксмо, 2021 год. Купить на Ozon | Книга гуру юзабилити Стива Круга пользуется уважением среди дизайнеров. В ней автор просто и с юмором рассказывает о принципах интуитивного дизайна. Её основная идея — сделать сайты и мобильные приложения максимально понятными и удобными для пользователя. |
Чем полезна. В целом книга об интерфейсе, но благодаря ей директолог сможет обнаружить основные ошибки на сайте, из-за которых уходят клиенты. Ведь увеличить конверсию можно за счёт простых операций, например, заменить заголовок, шрифт, кнопку с призывом к действию или форму обратной связи.
Специалист по контекстной рекламе сможет быстро определить, что мешает пользователям положить товар в корзину. Некоторые проблемные места получится исправить даже без дизайнера и разработчика.
Об авторе. Стив Круг — признанный во всем мире специалист по юзабилити, глава консалтинговой компании, работал с Apple, AOL, Netscape.
«Идеальный Landing Page. Создаем продающие веб-страницы» | |
Издательство Питер, 2018 г. Купить в «Лабиринте» | Landing page — посадочная страница, куда чаще всего попадают пользователи из контекстных объявлений. Эта книга пытается найти идеальную формулу такого сайта и превратить его в настоящую продающую витрину. Уже на обложке авторы книги уверяют, что если создать лендинг по их рекомендациям, то можно получать от 3 до 80 заказов в день, а также увеличить продажи через Интернет на 40–450 %. |
Чем полезна. Книга поможет специалистам по контекстной рекламе находить на сайте ошибки, которые мешают пользователям купить продукт. Авторы много внимания уделяют элементам страницы, контенту и визуальной составляющей. Какой должна быть структура лендинга? Как составлять убедительные тексты и привлекать пользователей с помощью контента? Как отрабатывать возражения на странице? Помимо этого, несколько глав посвящено эффективности контекстных объявлений и веб-аналитике.
Об авторах. Петроченков Антон Сергеевич и Новиков Евгений Сергеевич — интернет-маркетологи и управляющие партнеры рекламного агентства ConvertMonster. .
«Интернет-маркетинг. Настольная книга digital-маркетолога» | |
Издательство Бизнес-бук, 2019 г. Купить в Ozon | Книга написана тремя практикующими маркетологами и владельцами интернет-агентства Completo, работающего с крупными B2B-клиентами. В ней они разбирают весь комплекс маркетинговых активностей со стороны директора по маркетингу. Более 350 страниц, состоящих из кейсов, чек-листов и наглядных скриншотов. |
Чем полезна. Книга позволяет взглянуть на маркетинг компании в целом. В ней разбираются все маркетинговые процессы — от сегментации аудитории и контекстной рекламы до создания собственного маркетингового отдела. Книга хороша тем, что в ней есть реальные маркетинговые кейсы и рекомендации, которые применимы непосредственно к российскому рынку.
Об авторах. Гавриков Андрей Владимирович, Федоров Михаил, Давыдов Владимир — основатели маркетингового агенства Completo и онлай-курсов по интернет-маркетингу MAED.
«Маркетинг на 100 %. Ремикс» | |
Издательство «Манн, Иванов и Фербер», дата выхода первого издания в 2005 г. Купить на сайте издательства «МИФ» | «Маркетинг на 100 %» не относится напрямую к контекстной рекламе. Тут нет инструкций по Директу, тактик, приемов и советов по эффективному составлению объявлений. Однако мы включили ее в подборку, потому что стать профессиональным директологом без комплексного понимания маркетинга проблематично. |
Чем полезна. В книге практически нет теории, зато полно практики, ориентированной на реалии современного российского маркетинга. Тем, кто метит в штат, в первую очередь стоит обратить внимание на главы о поиске работы и прохождении собеседований. Также внимания заслуживают инсайты и практические рекомендации, которые можно тут же внедрять в работу.
В сети на книгу опубликованы десятки рецензий, авторы которых утверждают, что «Маркетинг на 100 %» стоит покупать хотя бы ради списка литературы. Его Игорь Манн приводит в конце книги и рекомендует читать для дальнейшего погружения в сферу.
Об авторе.В среде маркетологов Игорь Манн не нуждается в представлении. Один из самых известных маркетеров на постсоветском пространстве, автор и издатель, 20 лет выстраивает эффективный маркетинг в разных сферах и делится практическим опытом в книгах.
«Маркетинговое мышление» | |
Издательство «Библос», 2019. Купить на сайте «Лабиринта» | По отзывам в сети труд Александра Репьева — одна из самых полезных книг для маркетологов-практиков. Рекомендована к прочтению маркетологам, копирайтерам и всем, от чьих решений зависят позиционирование и продажи. |
Чем полезна. «Маркетинговое мышление» учит смотреть на продукт и рекламу с точки зрения покупателя. Специалистам по Директу это необходимо, чтобы создавать привлекательные объявления и анализировать посадочные страницы. Кроме того, подход «от клиента» может пригодиться и при подборе поисковых фраз для рекламных кампаний.
Об авторе. Александр Репьев — один из самых опытных отечественных рекламистов. За 50 лет в маркетинге накопил богатый опыт, которым делится в книгах, статьях и на дистанционных курсах. Работал в России, США, Австрии и других странах, в послужном списке — многие крупные компании: Microsoft, Xerox, Canon и другие.
2 недели бесплатно
Сеодроид автоматизирует контекстную рекламу, чтобы сэкономить ваше время и деньги
Бид-менеджер автоматически корректирует ставки в Яндекс.Директе, чтобы вы не переплачивали за клики. Контролирует списываемую цену и снижает ставки.
Стратегии помогают получить оптимальный объем трафика и уложиться в бюджет. А еще — автоматически запускать и останавливать объявления в зависимости от дня недели, времени суток, CTR, количества кликов — всего 29 переменных.
Попробуйте автоматизировать рутину — 14 дней бесплатно.
Протестировать Сеодроид
Копирайтинг
«Пиши, сокращай: Как создавать сильный текст» | |
Издательство «Альпина Паблишер», 2021. Купить в магазине «Альпина. Книги» | «Оранжевая книга» Максима Ильяхова и Людмилы Сарычевой уже стала настольной для редакторов, коммерческих писателей и других специалистов, работающих с текстом. Тезисы и приемы, описанные в «Пиши, сокращай» помогают сделать материалы информативнее и лаконичнее. Однако в книге много мыслей, которые относятся непосредственно к текстам лишь косвенно, и будут полезны и другим специалистам digital-сферы, в том числе и директологам. |
Чем полезна. Казалось бы, зачем директологу забивать голову структурой текста и другими понятиями, применимыми к большим форматам? Однако «Пиши, сокращай» состоит не только из советов по редактуре. Принципы заботы о читателе, правдивости и информативности текстов прослеживаются в каждой главе книги. Специалисту по контексту стоит ориентироваться на них, чтобы писать более прицельные объявления. Ну а советы про воду и редакторские тонкости помогу вместить больше смысла в 146 символов.
Об авторах. Максим Ильяхов и Людмила Сарычева — опытные редакторы и коммерческие писатели. «Тинькофф Журнал», рассылка «Мегаплана» и блог «Модульбанка» — их рук дело.
«Копирайтинг массового поражения» | |
Издательство «Питер», 2011. Купить электронную версию в «ЛитРес» | Первая книга копирайтера Дениса Каплунова вышла в 2014 году. Издание ориентировано на широкую аудиторию — начинающих коллег, желающих повысить свой профессиональный уровень, и предпринимателей, которые хотели бы самостоятельно составлять рекламные материалы для компании. |
Чем полезна. Часть книги посвящена профессии копирайтера, а основные практические главы ориентированы на более длинные форматы. Однако главы про заголовки и усилители стоит прочитать и директологам, чтобы добавить в свои объявления элементы, привлекающие внимание ЦА.
Книга пригодится специалистам по контекстной рекламе, которые хотят усилить тексты объявлений, независимо от опыта работы с директом. Эти 146 символов пусть и небольшой, но тоже продающий текст. Вместить в такой маленький объем рекламное послание, которое привлечет внимание и будет продавать переход на сайт, непросто.
Об авторе. Денис Каплунов — опытный и востребованный копирайтер, основатель и руководитель студии копирайтинга.
Аналитика
«Google Analytics 2019: Полное руководство» | |
Издательство «ДМК Пресс», 2020. Купить на сайте автора | Книга содержит наиболее полную инструкцию на русском языке по работе с Google Analytics. Примеры написаны простым языком и к каждой теме прилагаются скриншоты, которые еще не успели устареть к 2021 году. Вы можете идти по руководству шаг за шагом или изучать только отдельные инструменты. |
Чем полезна. В книге разбираются все темы, необходимые специалисту по контекстной рекламе и начинающему маркетологу: настройка целей и событий, когортный анализ, ремаркетинг, конверсии, работа с уникальным идентификатором отслеживания. Помимо этого, уделяется время и визуализации данных в Google Data Studio, Microsoft Power BI и Tableau, которые превращают разрозненные данные в аккуратные отчеты для клиента и интерактивные аналитические дашборды. mark
Об авторе. Яков Осипенков — сертифицированный специалист по контекстной рекламе, автор курсов по Google Ads, Google Analytics и Директу. Называет себя популяризатором веб-аналитики, ведёт блог osipenkov.ru и публикуется на крупных порталах по интернет-рекламе.
Читайте также: 19 специалистов, пишущих полезности о контекстной рекламе и веб-аналитике
«Google Tag Manager. Практическое руководство» | |
Издательство «ДМК Пресс», 2020. Купить на сайте автора | Эта книга следующая ступень в освоении Google Analytics. Единственное русскоязычное пособие, которое дает полное и системное представление о Google Tag Manager — системе управления кодами аналитики на сайте. |
Чем полезна. После прочтения книги сможете управлять всеми тегами в едином интерфейсе, научитесь добавлять коды сторонних сервисов на сайт, устанавливать счетчики аналитики и отслеживать нужные вам события. Также получите базовые знания по JavaScript и работе с CSS-селекторами.
Об авторе. Яков Осипенков — сертифицированный специалист по контекстной рекламе, автор курсов по Google Ads, Google Analytics и Директу. Называет себя популяризатором веб-аналитики, ведёт блог osipenkov.ru и публикуется на крупных порталах по интернет-рекламе.
«Веб-аналитика 2.0 на практике. Тонкости и лучшие методики» | |
Издательство «Диалектика Вильямс», 2019. Купить на Ozon | Книга Авинаша Кошика вышла в 2011 году. С тех пор в веб-технологиях многое изменилось. Однако ключевые моменты, касающиеся основных показателей и методов анализа, по-прежнему актуальны. Издательство «Вильямс» перевыпустило книгу в 2019 году. |
Чем полезна. Автор рассказывает, как перейти от количественной оценки кликов к качественному анализу данных. Показывает на практике, как решения, принятые на основе такого анализа помогли увеличить ROI и сократить издержки. Большинство систем аналитики, рассмотренных в книге, проблематично применить в рунете. Однако, поняв общие принципы, их можно реализовать с помощью других инструментов.
Об авторе. Авинаш Кошик — эксперт бизнес-аналитики и преподаватель университета Британской Колумбии. Участвует в профильных конференциях, где рассказывает об оптимизации процессов, повышении ROI и снижении затрат, публикуется в официальном блоге Google Analytics.
«Много цифр. Анализ больших данных при помощи Excel» | |
Издательство «Альпина Паблишер», 2018. Купить в магазине «Альпина. Книга» | Мы привыкли к тому, что большие данные — это такие же большие бюджеты, и этот инструмент доступен только крупным компаниям, у которых есть средства на разработку соответствующих технологий. В своей книге Джон Форман доказывает, что это не совсем так. Автор на простых и понятных примерах показывает, как работать с Big Data, имея под рукой только пресловутый Excel. Книга вышла в 2017 году и содержит свежую и актуальную информацию. |
Чем полезна. Excel — один из главных инструментов специалиста по контекстной рекламе. В книге Форман рассказывает о ее базовых и неочевидных возможностях и на примерах показывает, как их использовать в маркетинге и бизнес-аналитике. Тем, кто хорошо знает английский, но плохо знаком с Excel, лучше читать «Много цифр» в оригинале. В переводе встречаются неточности в формулах и терминах, которые могут сбить новичка с толку.
Об авторе. Джон Форман — главный специалист по данным в сервисе рассылок MailChimp. Читает лекции о трудностях внедрения аналитики в бизнес-процессы.
«Введение в Google Analytics» | |
Издательство «Питер», 2017. Купить на «ЛитРес» | Если вы решили начать разбираться в аналитике, то это первый учебник, который стоит освоить. В отличие от большинства книг по аналитике «Введение в Google Analytics» написана не для компаний, а для начинающих маркетологов. Поэтому здесь нет сложной терминологии, зато есть более 160 примеров из практики и пошаговые инструкции, написанные простым языком. |
Чем полезна. В книге вы найдете решения большинства сложностей, с которыми сталкиваются 95 % новичков в интернет-аналитике. В ней вы узнаете, как впервые установить на сайт и настроить Google Analytics, как связать ее с Директом, как настраивать цели и создавать отчеты. Благодаря этому научитесь анализировать источники трафика и находить проблемные места, из-за которых уходят клиенты.
Об авторе. Антон Петроченков — интернет-маркетолог и управляющий партнер рекламного агентства Convert Monster, а также автор обучающих курсов по созданию посадочных страниц и веб-аналитике.
Вместо заключения
Наша подборка могла бы быть гораздо больше. Однако книг по работе с Яндекс.Директ не так много, а для изучения смежных тем на достаточном для директолога уровне хватит пары учебников. Если мы упустили какую-то очень ценную книгу, которая помогла вам добиться успехов в работе — пишите в комментариях, мы ее обязательно добавим.
Сеодроид — система управления контекстной рекламой
- Корректирует ставки
- Контролирует расходы
- Автоматизирует рутину
Попробовать 14 дней бесплатно
ModuleNotFoundError: Нет модуля с именем «тапи-яндекс-директ»
Опубликовать Ответ
Предварительный просмотр:
Связанные руководства/вопросы и ответы:
ModuleNotFoundError: нет модуля с именем «tapi-yandex-direct»
ModuleNotFoundError: нет модуля с именем «tapi-yandex-direct» Привет, Мой… по имени ‘тапи-яндекс-директ’ Как удалить ModuleNotFoundError: Нет модуля. .., ModuleNotFoundError: Нет
ошибка модуля с именем ‘tapi-yandex-direct’ будет решена
ModuleNotFoundError: нет модуля с именем «модуль»
ModuleNotFoundError: нет модуля с именем «модуль» Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «модуль» Как удалить ModuleNotFoundError: нет модуля с именем ‘module’
Рекламные объявления
ModuleNotFoundError: нет модуля с именем ‘named-bitfield’
ModuleNotFoundError: нет модуля с именем ‘named-bitfield’ Привет! Мое… с именем ‘named-bitfield’ Как удалить ModuleNotFoundError: нет модуля с именем… установка библиотеки Python с именованным битовым полем, ModuleNotFoundError: нет
модуль с именем
ModuleNotFoundError: нет модуля с именем ‘named-bitfield’
ModuleNotFoundError: нет модуля с именем ‘named-bitfield’ Привет! Мое… с именем ‘named-bitfield’ Как удалить ModuleNotFoundError: нет модуля с именем. .. установка библиотеки Python с именованным битовым полем, ModuleNotFoundError: нет
модуль с именем
ModuleNotFoundError: нет модуля с именем ‘named_constants’
ModuleNotFoundError: нет модуля с именем ‘named_constants’ Привет! Мой… с именем ‘named_constants’ Как удалить ModuleNotFoundError: No module named… установка библиотеки Python named_constants, ModuleNotFoundError: Нет
модуль
ModuleNotFoundError: нет модуля с именем ‘named_constants’
ModuleNotFoundError: нет модуля с именем ‘named_constants’ Здравствуйте! Мой… с именем ‘named_constants’ Как удалить ModuleNotFoundError: No module named… установка библиотеки Python named_constants, ModuleNotFoundError: Нет
модуль
ModuleNotFoundError: нет модуля с именем «named_dataframes»
ModuleNotFoundError: нет модуля с именем «named_dataframes» Привет! Мой… с именем ‘named_dataframes’ Как удалить ModuleNotFoundError: Нет модуля…: Нет
ошибка модуля с именем «named_dataframes» будет устранена. Спасибо
ModuleNotFoundError: нет модуля с именем ‘named_dataframes’
ModuleNotFoundError: нет модуля с именем ‘named_dataframes’ Здравствуйте! Мой… с именем ‘named_dataframes’ Как удалить ModuleNotFoundError: Нет модуля…: Нет
ошибка модуля с именем «named_dataframes» будет устранена.
Спасибо
ModuleNotFoundError: Нет модуля с именем «named-dates»
ModuleNotFoundError: Нет модуля с названием «named-dates» Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «названные даты» Как удалить ModuleNotFoundError: нет модуля с именем
ModuleNotFoundError: нет модуля с именем «named_decorator»
ModuleNotFoundError: нет модуля с именем «named_decorator» Здравствуйте! Мой… с именем ‘named_decorator’ Как удалить ModuleNotFoundError: No module named… установка библиотеки Python named_decorator, ModuleNotFoundError: Нет
модуль
ModuleNotFoundError: нет модуля с именем ‘named-enum’
ModuleNotFoundError: нет модуля с именем ‘named-enum’ Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «named-enum» Как удалить ModuleNotFoundError: нет модуля с именем
ModuleNotFoundError: нет модуля с именем ‘named-bitfield’
ModuleNotFoundError: нет модуля с именем ‘named-bitfield’ Привет! Мое. .. с именем ‘named-bitfield’ Как удалить ModuleNotFoundError: нет модуля с именем… установка библиотеки Python с именованным битовым полем, ModuleNotFoundError: нет
модуль с именем
ModuleNotFoundError: нет модуля с именем ‘named_constants’
ModuleNotFoundError: нет модуля с именем ‘named_constants’ Привет! Мой… с именем ‘named_constants’ Как удалить ModuleNotFoundError: No module named… установка библиотеки Python named_constants, ModuleNotFoundError: Нет
модуль
ModuleNotFoundError: нет модуля с именем ‘named_dataframes’
ModuleNotFoundError: нет модуля с именем ‘named_dataframes’ Здравствуйте! Мой… с именем ‘named_dataframes’ Как удалить ModuleNotFoundError: Нет модуля…: Нет
ошибка модуля с именем «named_dataframes» будет устранена.
Спасибо
ModuleNotFoundError: Нет модуля с именем «named-dates»
ModuleNotFoundError: Нет модуля с названием «named-dates» Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «названные даты» Как удалить ModuleNotFoundError: нет модуля с именем
ModuleNotFoundError: нет модуля с именем «named_decorator»
ModuleNotFoundError: нет модуля с именем «named_decorator» Здравствуйте! Мой. .. с именем ‘named_decorator’ Как удалить ModuleNotFoundError: No module named… установка библиотеки Python named_decorator, ModuleNotFoundError: Нет
модуль
ModuleNotFoundError: нет модуля с именем ‘named-enum’
ModuleNotFoundError: нет модуля с именем ‘named-enum’ Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «named-enum» Как удалить ModuleNotFoundError: нет модуля с именем
ModuleNotFoundError: нет модуля с именем ‘named_redirect’
ModuleNotFoundError: нет модуля с именем ‘named_redirect’ Здравствуйте! Мой… с именем ‘named_redirect’ Как удалить ModuleNotFoundError: No module named… установка библиотеки Python named_redirect, ModuleNotFoundError: Нет
модуль с именем
ModuleNotFoundError: нет модуля с именем «Burki_Module»
ModuleNotFoundError: нет модуля с именем «Burki_Module» Здравствуйте! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «Burki_Module» Как удалить ModuleNotFoundError: нет модуля с именем
ModuleNotFoundError: нет модуля с именем c-module
ModuleNotFoundError: нет модуля с именем c-module Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «c-module» Как удалить ModuleNotFoundError: нет модуля с именем c-module
ModuleNotFoundError: нет модуля с именем Dragon_Module
ModuleNotFoundError: нет модуля с именем Dragon_Module Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «Dragon_Module» Как удалить ModuleNotFoundError: нет модуля с именем
ModuleNotFoundError: нет модуля с именем Dragon_Module
ModuleNotFoundError: нет модуля с именем Dragon_Module Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «Dragon_Module» Как удалить ModuleNotFoundError: нет модуля с именем
ModuleNotFoundError: нет модуля с именем ‘huik-module’
ModuleNotFoundError: нет модуля с именем ‘huik-module’ Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «huik-module» Как удалить ModuleNotFoundError: нет модуля с именем
ModuleNotFoundError: нет модуля с именем «Mathematics-Module»
ModuleNotFoundError: нет модуля с именем «Mathematics-Module» Привет! Мой. .. под названием «Математический модуль» Как удалить ошибку ModuleNotFoundError: нет модуля с именем «Математический модуль»? Спасибо
Привет, В вашем
ModuleNotFoundError: нет модуля с именем «Mathematics-Module»
ModuleNotFoundError: нет модуля с именем «Mathematics-Module» Привет! Мой… под названием «Математический модуль» Как удалить ошибку ModuleNotFoundError: нет модуля с именем «Математический модуль»? Спасибо
Привет, В вашем
ModuleNotFoundError: модуль с именем mkflask_module отсутствует
ModuleNotFoundError: модуль с именем mkflask_module отсутствует Привет! Мой… с именем «mkflask_module» Как удалить ModuleNotFoundError: No module named… установка mkflask_module библиотеки Python, ModuleNotFoundError: Нет
модуль с именем
ModuleNotFoundError: нет модуля с именем «модуль-пакет»
ModuleNotFoundError: нет модуля с именем «модуль-пакет» Привет, Мой… с именем «модуль-пакет» Как удалить ModuleNotFoundError: No module named. .. установка библиотеки python для модуля-пакета, ModuleNotFoundError: No
модуль с именем
ModuleNotFoundError: нет модуля с именем «module-reloadable»
ModuleNotFoundError: нет модуля с именем «module-reloadable» Здравствуйте! Мой… с именем ‘module-reloadable’ Как удалить ошибку ModuleNotFoundError: нет модуля с именем «перезагружаемый модуль»? Спасибо
Привет, В вашем
ModuleNotFoundError: нет модуля с именем «module-resources»
ModuleNotFoundError: нет модуля с именем «module-resources» Привет! Мой… с именем «модуль-ресурсы» Как удалить ошибку ModuleNotFoundError: нет модуля с именем «модуль-ресурсы»? Спасибо
Привет, В вашем
ModuleNotFoundError: нет модуля с именем «module_salad»
ModuleNotFoundError: нет модуля с именем «module_salad» Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «module_salad» Как удалить ModuleNotFoundError: нет модуля с именем ‘
ModuleNotFoundError: нет модуля с именем ‘module-starter. leon’
ModuleNotFoundError: нет модуля с именем ‘module-starter.leon’ Привет! Мой… по имени ‘module-starter.leon’ Как удалить ошибку ModuleNotFoundError: нет модуля с именем «module-starter.leon»? Спасибо
привет
ModuleNotFoundError: нет модуля с именем «module_template»
ModuleNotFoundError: нет модуля с именем «module_template» Здравствуйте! Мой… с именем ‘module_template’ Как удалить ошибку ModuleNotFoundError: модуль с именем… с именем ‘module_template’ не будет устранен.
Спасибо
ModuleNotFoundError: нет модуля с именем «module-tracker»
ModuleNotFoundError: нет модуля с именем «module-tracker» Здравствуйте! Мой… по имени «модуль-трекер» Как удалить ModuleNotFoundError: No module named… установка библиотеки python для отслеживания модулей, ModuleNotFoundError: No
модуль с именем
ModuleNotFoundError: нет модуля с именем «module-graph»
ModuleNotFoundError: нет модуля с именем «module-graph» Здравствуйте! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «модуль-граф». Как удалить ModuleNotFoundError: нет модуля с именем ‘
ModuleNotFoundError: нет модуля с именем «module-launcher»
ModuleNotFoundError: нет модуля с именем «module-launcher» Привет! Моя… по имени «модуль-пусковая установка» Как удалить ModuleNotFoundError: ошибка модуля с именем… с именем ‘module-launcher’ не будет устранена.
Спасибо
ModuleNotFoundError: нет модуля с именем «module-loader»
ModuleNotFoundError: нет модуля с именем «module-loader» Здравствуйте! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «загрузчик модулей» Как удалить ModuleNotFoundError: нет модуля с именем
ModuleNotFoundError: нет модуля с именем «module-log»
ModuleNotFoundError: нет модуля с именем «module-log» Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «модуль-журнал» Как удалить ModuleNotFoundError: нет модуля с именем
ModuleNotFoundError: нет модуля с именем «имя_модуля»
ModuleNotFoundError: нет модуля с именем «имя_модуля» Здравствуйте! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «имя_модуля» Как удалить ModuleNotFoundError: нет модуля с именем «
ModuleNotFoundError: нет модуля с именем «модуль-пакет»
ModuleNotFoundError: нет модуля с именем «модуль-пакет» Привет! Мой. .. с именем «модуль-пакет» Как удалить ModuleNotFoundError: No module named… установка библиотеки python для модуля-пакета, ModuleNotFoundError: No
модуль с именем
ModuleNotFoundError: нет модуля с именем «module-reloadable»
ModuleNotFoundError: нет модуля с именем «module-reloadable» Здравствуйте! Мой… с именем ‘module-reloadable’ Как удалить ошибку ModuleNotFoundError: нет модуля с именем «перезагружаемый модуль»? Спасибо
Привет, В вашем
ModuleNotFoundError: нет модуля с именем «module-resources»
ModuleNotFoundError: нет модуля с именем «module-resources» Привет! Мой… с именем «модуль-ресурсы» Как удалить ошибку ModuleNotFoundError: нет модуля с именем «модуль-ресурсы»? Спасибо
Привет, В вашем
ModuleNotFoundError: нет модуля с именем «module_salad»
ModuleNotFoundError: нет модуля с именем «module_salad» Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «module_salad» Как удалить ModuleNotFoundError: нет модуля с именем ‘
ModuleNotFoundError: нет модуля с именем ‘module-starter. leon’
ModuleNotFoundError: нет модуля с именем ‘module-starter.leon’ Привет! Мой… по имени ‘module-starter.leon’ Как удалить ошибку ModuleNotFoundError: нет модуля с именем «module-starter.leon»? Спасибо
привет
ModuleNotFoundError: нет модуля с именем «module_template»
ModuleNotFoundError: нет модуля с именем «module_template» Здравствуйте! Мой… с именем ‘module_template’ Как удалить ошибку ModuleNotFoundError: модуль с именем… с именем ‘module_template’ не будет устранен.
Спасибо
ModuleNotFoundError: нет модуля с именем «module-tracker»
ModuleNotFoundError: нет модуля с именем «module-tracker» Здравствуйте! Мой… по имени «модуль-трекер» Как удалить ModuleNotFoundError: No module named… установка библиотеки python для отслеживания модулей, ModuleNotFoundError: No
модуль с именем
ModuleNotFoundError: нет модуля с именем «модуль-оболочка»
ModuleNotFoundError: нет модуля с именем «модуль-оболочка» Здравствуйте! Мой. .. с именем «модуль-обертка» Как удалить ModuleNotFoundError: No module named… установка библиотеки python для модуля-оболочки, ModuleNotFoundError: No
модуль с именем
ModuleNotFoundError: нет модуля с именем «Module_xichengxml»
ModuleNotFoundError: нет модуля с именем «Module_xichengxml» Здравствуйте! Мой… с именем ‘Module_xichengxml’ Как удалить ошибку ModuleNotFoundError: нет модуля с именем «Module_xichengxml»? Спасибо
Привет, В вашем
ModuleNotFoundError: Нет модуля с именем «MSOffice2PS-Python-Module»
ModuleNotFoundError: Нет модуля с именем «MSOffice2PS-Python-Module» Привет…: Нет модуля с именем «MSOffice2PS-Python-Module» Как удалить ошибку ModuleNotFoundError: нет модуля с именем «MSOffice2PS-Python-Module»? Спасибо
 
ModuleNotFoundError: нет модуля с именем «my_module»
ModuleNotFoundError: нет модуля с именем «my_module» Здравствуйте! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «my_module» Как удалить ModuleNotFoundError: нет модуля с именем «мой
ModuleNotFoundError: нет модуля с именем mytest-module
ModuleNotFoundError: нет модуля с именем mytest-module Привет! Моя программа Python выдает следующую ошибку: ModuleNotFoundError: нет модуля с именем «mytest-module» Как удалить ModuleNotFoundError: Нет модуля с именем
Использовать субтитры в yandex-tank с примерами
Лучший фрагмент кода Python с использованием yandex-tank
SubtitlesSupport. py
Источник: SubtitlesSupport.py
1 #Имя встроенного файла: ACEStream\Core\ Подзаголовок s\ Подзаголовок sSupport.pyo 2 из ACEStream.Core. Subtitle s.MetadataDomainObjects.Languages импортирует LanguagesProvider 3 из ACEStream.Core. Подзаголовок s.MetadataDomainObjects.MetadataDTO импортировать MetadataDTO 4 из ACEStream.Core. Subtitle s.MetadataDomainObjects.MetadataExceptions import RichMetadataException 5 из ACEStream.Core. Подзаголовок s.MetadataDomainObjects. Subtitle Info import Subtitle Info 6 from ACEStream.Core.Utilities import tools 7 from ACEStream.Core.Utilities.utilities import isValidPermid, bin2str 8 import sys 90 012 9 импорт потоков 10 ОТЛАДКА = False 11 class Subtitle sSupport(object): 12 __single = None 13 _singletonLock = threading. RLock() 14 def __init__(self): 15 попытка: 16 Подзаголовок sSupport._singletonLock.acquire() 17 Подзаголовок sSupport.__single = self 18 наконец: 19 Подзаголовок sSupport._singletonLock.release() 20 self.richMetadata_db = Нет 21 сам. subtitle sHandler = None 22 self.channelcast_db = None 23 self.langUtility = LanguagesProvider.getLanguagesInstance() 24 self._registered = False 25 @staticmethod 26 def getInstance(*args, **kw): 27 try: 28 Subtitle sS upport._singletonLock.acquire() 29 если Subtitle sSupport.__single == None: 30 Subtitle sSupport(*args, **kw) 31 finally: 32 Subtitle sSupport._sing letonLock.release() 33 return Subtitle sSupport.__single 34 def _register(self, richMetadataDBHandler, subtitle sHandler, channelcast_db, my_permid, my_keypair, peersHaveManger, ol_bridge): 35 self. richMetadata_db = richMetadataDBHandler 36 self. subtitle sHandler = subtitle sHandler 37 self.channelcast_db = channelcast_db 38 self.my_permid = my_permid 39 self.my_keypair = my_keypair 40 self._peersHaveManager = peersHaveManger 41 self._ol_bridge = ol_bridge 42 self._registered = True 43 9001 3 def getSubtileInfosForInfohash(self, infohash): 44 returnDictionary = dict( ) 45 metadataDTOs = self.richMetadata_db.getAllMetadataForInfohash(infohash) 46 для metadataDTO в metadataDTOs: 47 канал = metadataDTO.channel 48 подзаголовок s = metadataDTO.getAll Подзаголовок s() 49 if len( подзаголовок s) > 0: 50 returnDictionary[канал] = 902 77 subtitle s 51 return returnDictionary 52 def get Subtitle Infos(self, channel, infohash): 53 metadataDTO = self. richMetadata_db.getMetadata(channel, infohash) 54 if metadataDTO: 55 return metadataDTO.getAll Subtitle s() 56 return {} 57 def publish Subtitle (self, infohash, lang, pathToSrt Subtitle ): 900 12 58 идентификатор канала = bin2str(self.my_permid ) 59 base64infohash = bin2str(infohash) 60 constent = self.channelcast_db.isItemInChannel(channelid, base64infohash) 61 если не согласовано: 62 msg = ' Информационный хэш %s не найден на моем канале. Отклонение subtitle ' % base64infohash 63 if DEBUG: 64 print >> sys.stderr, msg 65 поднять RichMetadataException(msg) 66 try: 6 7 путь к файлу = сам. subtitle sHandler.copyTo Subtitle sFolder(pathToSrt Subtitle , self.my_permid, infohash, lang) 68 кроме Exception as e: 69 if DEBUG: 90 012 70 печать >> sys. stderr, 'Ошибка читать и копировать подзаголовок в соответствующую папку: %s' % str(e) 71 metadataDTO = self.richMetadata_db.getMetadata(self.my_permid, infohash) 72 если metadataDTO равно None: 73 metadataDTO = MetadataDTO(self .my_permid , infohash) 74 else: 75 metadataDTO.resetTimestamp() 76 new Subtitle = Subtitle Info(lang, filepath) 77 если новый 90 277 Подзаголовок . subtitle Exists(): 78 new Subtitle .computeChecksum() 79 else: 80 msg = 'Обнаружено несоответствие. Подзаголовок не был опубликован' 81 if DEBUG: 82 print >> sys.stderr, msg 83 поднять RichMetadataException(msg) 84 metadataDTO.add Sub заголовок (новый Подзаголовок ) 85 metadataDTO.sign(self.my_keypair) 86 self.richMetadata_db.insertMetadata(metadataDTO) 87 извлечение по умолчанию Подзаголовок Содержимое (я, канал, информационный хеш, подзаголовок Информация, обратный вызов = Нет): 88 если подзаголовок Название Информация. subtitle Exists(): 89 if subtitle Info.verifyChecksum(): 90 callback( subtitle Info) 91 return 92 900 13 если ОТЛАДКА: 93 print >> sys.stderr, ' Подзаголовок доступен локально, но имеет неверную контрольную сумму. Выдача другой загрузки' 94 subtitle Info.path = None 95 languages = [ subtitle Info.lang] 96 def call_me_when_ subtitle _arrives(list OfLanguages): 97 , если обратный вызов не None: 98 sub = self.richMetadata_db.get Подзаголовок (channel, infohash, listOfLanguages[0]) 99 callback(sub) 100 self._queryPeersFor Subtitle s(channel, infohash, languages, call_me_when_ subtitle _arrives) 9 0012 101 def retrieveMultiple Подзаголовок Содержание (self, channel, infohash, listOfSubInfos, callback = None): 102 languages = [] 103 locallyAvailableSubs = [] 104 для субтитров Информация в listOfSubInfos: 105 , если подзаголовок Info. checksum is None: 106 if DEBUG: 107 print >> sys.stderr, 'Нет контрольной суммы для подзаголовка %s. Пропустить его в запросе' % подзаголовок Информация 108 продолжить 109 если подзаголовок Информация. подзаголовок Exists(): 110 if подзаголовок Info.verifyChecksum(): 111 locallyAvailableSubs.append( subtitle Info) 112 continue 113 else: 114 if DEBUG: 115 print >> sys.stderr, ' 90 277 Подзаголовок доступен локально, но имеет неверную контрольную сумму. Выдача другой загрузки' 116 подзаголовок Info.path = None 117 languages.append( подзаголовок Info.lang) 118 , если len(locallyAvailableSubs) > 0 и обратный вызов не None: 119 callback(locallyAvailableSubs) 120 def call_me_when_ subtitle s_arrive( listOfLanguages): 121 , если обратный вызов не None: 122 subinfos = list () 123 All Subtitle S = Self. Richmetadata_DB.Getall Subtitle S (канал, Infohash) 124 для Lang в списке0012 125 subInfos.append(all Subtitle s[lang]) 126 callback(subInfos) 127 if len(languages) > 0: 128 self._queryPeersFor Подзаголовок s(канал, информация, языки , call_me_when_ subtitle s_arrive) 129 def _queryPeersFor Subtitle s(self, channel, infohash, languages, callback): 130 def task(): 131 бит маска = self.langUtility.langCodesToMask(языки) 132 если не битовая маска > 0: 133 если DEBUG: 134 print >> sys.stderr, 'Не будет отправлять запрос на 0 подзаголовок s' 135 вернуть 9001 2 136 peers_to_query = self._peersHaveManager .getPeersHaving(channel, infohash, bitmask) 137 для пира в peers_to_query: 138 self. подзаголовок sHandler.send Подзаголовок Запрос (одноранговый узел, канал, информационный хеш, языки, обратный вызов) 139 self. _ol_bridge.add_task(task) 140 def runDBConsinstencyRoutine(self): 141 результат = self.richMetadata_db.getAllLocal Подзаголовок с() 142 для канала в результате: 143 для информационного хеша в результате [канал]: 144 для вспомогательной информации в результате [канал] [инфохеш]: 145 , если не вспомогательная информация. подзаголовок Exists(): 146 if channel == self.my_permid: 147 metadataDTO = self.richMetadata_db.getMetadata(channel, infohash) 148 metadataDTO.remove Subtitle (subInfo.lang ) 149 метаданныеDTO. sign(self.my_keypair) 150 self.richMetadata_db.insertMetadata(metadataDTO) 151 еще: ...
views.py
Source:views.py
... 92 для подзаголовок 902 78 в СМИ. subtitle _files: 93 if subtitle ["id"] == id: 94 path = subtitle ["filepath"] 95 text = "" 96 значение = open_ подзаголовок (путь) 97 текст, статус = значение [0], значение [1] 98 , если статус == Истина: 99 form = forms. Customize Subtitle sForm(request.form, 100 subtitle =text) 101 if request.method == 'POST' and form.validate(): 1 02 подзаголовок _data = форма. subtitle .data 103 status = save_ subtitle (path, subtitle _data) 104 if status == True: 105 messages.add_message( 106 запрос, 107 сообщения.УСПЕХ, 108 (" Субтитры файл изменен!!!")) 109 возврат перенаправления(запрос, 110 location=media.url_for _self (запрос.urlgen)) 111 еще: 112 messages.add_message( 113 запрос, 114 сообщения.ОШИБКА, 115 ("Не удалось отредактировать подзаголовок s!!!")) 116 return redirect(request, 117 location=media.url_for_self(request.urlgen)) ...900 02
default.py
Источник: default.py
1 # -*- кодировка: utf-8 --*- 2 4 система импорта 5 импорт xbmc 6 import xbmcgui 7 import xbmcaddon 8 import time 9 import urllib 10 import urllib2 11 import base64 12 import hashlib 13 TRANSLATED_ SUBTITLE _FILE_NAME = "переведено Subtitle . srt" 14 PLUGIN_ SUBTITLE _FILENAME = "temp_sub.en.srt" 15 PLUGIN_ SUBTITLE _PATH = xbmc.translatePath('special://masterprofile/addon_data/script.xbm c. подзаголовок s/sub_stream/temp_sub.en.srt') 16 TRANSLATING_TEXT = 'Перевод...' 17 QUICK_TRANSLATE_URL = 'https://explain.cc/app/quick Подзаголовок Перевод' 18 900 13 ГОЛОВА = 'Explain.CC' 19 ПЕРЕВОД_ SUBTITLE _FILENAME = xbmc.translatePath('special://masterprofile/addon_data/translated Subtitle .srt') 20 EMPTY_STRING = "" 90 012 21 кэшировано Подзаголовок = "" 22 def isPlugin Подзаголовок s( subtitle sName): 23 return PLUGIN_ SUBTITLE _FILENAME == subtitle sName 24 def isTranslated Subtitle s( sub title sName): 25 return TRANSLATED_ SUBTITLE _FILE_NAME == subtitle sName 26 27 def readFile(path) : 28 print path # Ошибка в Ubuntu, файл не виден. 29 печать os.path.isfile(путь) 30 если os.path.isfile(путь) : 31 f = open(path,'r') 32 content = f.read() 33 возврат содержимого 34 возврат "" 35 def writeFile(absoluteFilename, content) : 36 9 0013 ф = open(absoluteFilename,'w') 37 f.write(content) 38 f.close() 39 def save Subtitle s(content) : 40 print TRANSLATED_ SUBT ITLE _FILENAME 41 writeFile(ПЕРЕВОД_ SUBTITLE _FILENAME, содержание) 42 def get Subtitle ContentFromPluginFile() : 43 return readFile(PLUGIN_ SUBTITLE _PATH) 44 def getTranslated Subtitle Content () : 45 возврат readFile (ПЕРЕВОД_ SUBTITLE _FILENAME) 46 def quick Subtitle Translate( subtitle ) : 47 popup = xbmcgui.DialogProgress() 48 popup.create(HEAD, TRANSLATING_TEXT) 49 ответ = EMPTY_STRING 50 попытка: 51 запрос = urllib2. Request(QUICK_TRANSLATE_URL) 52 request.add_header("Авторизация",getBasicAuthentication()) 53 params = urllib.urlencode({' подзаголовок ': подзаголовок }) 54 ответ = urllib2.urlopen(запрос, параметры).read() 55 ответ печати; 56 кроме Exception as inst: 57 popup.close() 58 xbmc.executebuiltin('Notification(Explain.CC,%s,20000)' % str(inst)) 59 popup.close() 60 возврат ответа 61 def setTranslated Подзаголовок ( подзаголовок ) : 62 переведено Подзаголовок = быстро 9 0277 Подзаголовок Перевести( подзаголовок ) 63 сохранить Subtitle s(переведено Subtitle ) 64 player.set Subtitle s(TRANSLATED_ SUBTITLE _FILENAME) 65 return translation Subtitle 9027 8 66 def save Subtitle InCache( subtitle ) : 67 global cached Subtitle 68 cached Subtitle = subtitle 69 def isUserAgreeToTranslate Subtitle s() : 70 диалог = xbmcgui. Dialog() 71 return dialog.yesno(HEAD, 'Вы хотите перевести субтитры s?') 72 def getBasicAuthentication() : 73 addon = xbmcaddon.Addon() 74 login = addon.getSetting('login') 75 password = addon.getSetting('password') 76 print hashlib.md5(login+password).hexdigest() 77 auth = base64.encodestring ('%s:%s' % (логин, hashlib.md5(логин+пароль).hexdigest())).replace('\n','') 78 return 'Basic %s' % auth 79 def read Subtitle ( subtitle Name) : 80 if isPlugin Subtitle s( subtitle Name) : 81 subtitle = получить Subtitle ContentFromPluginFile() 82 elif isTranslated Subtitle s( subtitle Name) : 83 900 13 subtitle = getTranslated Subtitle Content() 84 else : 85 subtitle = readFile( subtitle Name) 86 return subtitle 87 def is Subtitle Changed( subtitle Name) : 88 print len(read Subtitle ( subtitle Name)) 89 print len(cache Subtitle ) 90 return read Subtitle ( подзаголовок Имя) != кэшировано Subtitle 91 player = xbmc.