(ANKI) SuperMemo UX - Extreme English 2010 [2016, apkg, ENG]

Ответить
 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 28-Май-16 16:45 (8 лет 5 месяцев назад, ред. 01-Авг-16 11:42)

Anki Deck: SuperMemo UX - Extreme English 2010
Год/Дата Выпуска: 2016
Издатель: СамИздат
Язык курса: Английский
Разработчик: ufff
Формат: apkg
Количество карточек: 27860 (2226 + 9843 + 9766 + 6025) + 4281 (399 + 3422 + 460)
Системные требования: ANKI: http://ankisrs.net/ - программа для которой создана колода (бесплатна с официального сайта). Anki это программа для запоминания слов, выражений и другой информации используя технику запоминания с помощью интервальных повторений .
Описание: Карточки с "пропусками" (Cloze deletion) на основе колод Super Memo UX - Extreme English по курсам Basic, Intermediate, Advanced и Proficiency. Каждая карточка содержит аудио с произношением слова и его определением (британский английский). В некоторых карточках есть картинки. Также, для большинства слов из Oxford Advanced Learners Dictionary 8th Ed была добавлена британская и американская транскрипция (её иногда "слишком" много - сверяйтесь со словарём).
Доп. информация: Карточки генерировались на основе ресурсов, извлеченных при помощи утилиты smux-anki-converter (github), с объединением информации из разных видов карточек в одну + добавлены картинки. Оставлен только один тип карточек: карточки с "пропусками" (Cloze).
Колоды для Anki с похожим принципом:
  1. Paul Nation - ANKI DECK: 4000 Essential English Words 1,2,3 / Колода Анки: 4000 основных английских слов [2014 г., ENG, JPG, MP3, Anki]
  2. Anki deck: Illustrated Everyday Expressions with Stories (Books 1-2) / Иллюстрированные выражения на каждый день с историями (Книги 1-2) [2015 г., apkg, ENG]
Раздача обновлена! (30.07.2016)[*] Добавлены 3 новые колоды из Extreme English: фразовые глаголы, идиомы, неправильными глаголы.
Скриншоты
Добавление поля ввода и украшательств от hungry_pokute
Лицевая сторона карточки писал(а):
{{Image}}
{{cloze:Question}}
<br>
{{type:cloze:Question}}
Таблица стилей писал(а):
.card {
font-family: arial;
font-size: 20px;
text-align: center;
color: black;
background-color: #f3f3f3; /* серый фон карточки */
}
.cloze {
font-weight: bold;
color: blue;
}
.trans{
color: #555; /* цвет транскрипции */
}
/* стили поля ввода*/
#typeans {
padding-top: 0.5em;
text-align: center;
max-width: 300px;
}
input#typeans {
border-radius: 9px
}
Обратная сторона карточки писал(а):
{{Image}}
{{cloze:Question}}<br/>
{{type:cloze:Question}} <!-- выводит напечатанный в поле ввода ответ; в случае ошибок, подсвечивает их -->
<br>
<span class="trans">{{TranscriptionBrE}}</span><br/>
<br/>
{{Answer}}
{{SoundKeywords}}
{{SoundDefinition}}
Вот как это будет выглядеть:
Добавление заголовка с именем колоды
Лицевая сторона карточки писал(а):
<div class=Deck><span id=Deck>{{Deck}}</span></div>
<!--<script>document.getElementById('Deck').innerHTML="{{Deck}}".replace("::"," − ");</script>-->
Таблица стилей писал(а):
.Deck {
position: absolute; top: 7px; left: 0px; width: 100%;
}
#Deck {
font-size: 8pt; vertical-align: top; line-height: 10pt;
}
Download
Rutracker.org не распространяет и не хранит электронные версии произведений, а лишь предоставляет доступ к создаваемому пользователями каталогу ссылок на торрент-файлы, которые содержат только списки хеш-сумм
Как скачивать? (для скачивания .torrent файлов необходима регистрация)
[Профиль]  [ЛС] 

hungry_pokute

Стаж: 12 лет 9 месяцев

Сообщений: 24


hungry_pokute · 29-Май-16 13:29 (спустя 20 часов, ред. 29-Май-16 13:29)

Отличная работа. Это то, чего я хотел месяцев 8 назад.
Я бы сюда ещё добавил поле для ввода. Оно реализуется очень просто: {{type:cloze:Question}} (добавить на лицевую и обратную сторону карточки). А профит от него огромный. Правда не знаю насколько это удобно в мобильном приложении, не пробовал.
Ну и вопрос по поводу картинок. Они планируются? Или там оставлено поле для самостоятельного заполнения?)))
Ещё замечание по поводу фона. У меня в колодах фон стоит такой же как в главном меню Anki ( background-color: #f3f3f3;).
Это конечно сугубо индивидуально, но мне кажется такой нейтрально-серый фон более приятен для глаз, чем белый. Ну и он не контрастирует с главным меню программы.
Вот как это будет выглядеть:
скрытый текст
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 29-Май-16 17:25 (спустя 3 часа, ред. 29-Май-16 17:25)

hungry_pokute писал(а):
70784991Отличная работа. Это то, чего я хотел месяцев 8 назад.
Я уже, если честно, не знаю хочу ли ту колоду. У слов в этих четырёх колодах очень большой разброс по частоте использования (mon_day может расписать более подробно :)). И вместо озвучки определений слов было бы полезнее иметь озвучку примеров с этими словами.
hungry_pokute писал(а):
70784991Я бы сюда ещё добавил поле для ввода. Оно реализуется очень просто: {{type:cloze:Question}} (добавить на лицевую и обратную сторону карточки). А профит от него огромный. Правда не знаю насколько это удобно в мобильном приложении, не пробовал.
Большое спасибо! Но, просто скиньте сюда под спойлер ваш стиль карточек текстом целиком. Я его могу и в шапку добавить. Каждый сможет добавить и поле для ввода и изменить цвет фона самостоятельно. А в мобильном приложении это поле отлючаемо в настройках, если что. Просто я в последнее время перестал в водить слова с клавиатуры, а только проговариваю.
hungry_pokute писал(а):
Ну и вопрос по поводу картинок. Они планируются? Или там оставлено поле для самостоятельного заполнения?)))
Там где картинок нет - их нет и в SuperMemo UX. Если это не так, то скажите в какой карточке - я исправлю.
[Профиль]  [ЛС] 

hungry_pokute

Стаж: 12 лет 9 месяцев

Сообщений: 24


hungry_pokute · 29-Май-16 19:50 (спустя 2 часа 25 мин.)

ufff писал(а):
70786256Большое спасибо! Но, просто скиньте сюда под спойлер ваш стиль карточек текстом целиком. Я его могу и в шапку добавить. Каждый сможет добавить и поле для ввода и изменить цвет фона самостоятельно. А в мобильном приложении это поле отлючаемо в настройках, если что. Просто я в последнее время перестал в водить слова с клавиатуры, а только проговариваю.
Добавление поля ввода и украшательств
Лицевая сторона карточки писал(а):
{{Image}}
{{cloze:Question}}
<br>
{{type:cloze:Question}}
Таблица стилей писал(а):
.card {
font-family: arial;
font-size: 20px;
text-align: center;
color: black;
background-color: #f3f3f3; /* серый фон карточки */
}
.cloze {
font-weight: bold;
color: blue;
}
.trans{
color: #555; /* цвет транскрипции */
}
/* стили поля ввода*/
#typeans {
padding-top: 0.5em;
text-align: center;
max-width: 300px;
}
input#typeans {
border-radius: 9px
}
Обратная сторона карточки писал(а):
{{Image}}
{{cloze:Question}}<br/>
{{type:cloze:Question}} <!-- выводит напечатанный в поле ввода ответ; в случае ошибок, подсвечивает их -->
<br>
<span class="trans">{{TranscriptionBrE}}</span><br/>
<br/>
{{Answer}}
{{SoundKeywords}}
{{SoundDefinition}}
ufff писал(а):
70786256Там где картинок нет - их нет и в SuperMemo UX. Если это не так, то скажите в какой карточке - я исправлю.
Понял. Просто был не в курсе что там не везде картинки есть.
[Профиль]  [ЛС] 

student1234567890

Стаж: 14 лет 11 месяцев

Сообщений: 30


student1234567890 · 24-Июл-16 14:35 (спустя 1 месяц 25 дней)

А можно ли сейвы с supermemo ux на anki перебросить?
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 24-Июл-16 20:03 (спустя 5 часов)

student1234567890 писал(а):
71107357А можно ли сейвы с supermemo ux на anki перебросить?
Если просто, то нет. Во-первых здесь карточки только с cloze. Во-вторых, придется разобраться с форматом файлов статистики от SuperMemo (smux bakup file).
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 30-Июл-16 20:32 (спустя 6 дней, ред. 04-Авг-16 15:04)

В раздачу добавлены три колоды из того же комплекта:
Цитата:
Extreme English (Super Memo UX)__5. Phrasal Verbs.apkg
Extreme English (Super Memo UX)__6. English Idioms.apkg
Extreme English (Super Memo UX)__7. Irregular Verbs.apkg
Несколько замечаний:
  1. Новые колоды получились сравнительно большие из-за битрейта аудио в 128кбит. Пробовал сжимать до 64кбит было сильно слышно "железо".
  2. Карточки с пропусками (cloze) есть только в колоде с неправильными глаголами (и то не все). Есть в планах переделать под пропуски карточки с фразовыми глаголами. Для этого придется перенести примеры на лицевую сторону и из них вырезать сами фразы. Мне кажется, тогда это будет не менее полезная колода чем колода по Illustrated Everyday Expressions with Stories. Карточки с идиомами дорабатываться не будут будут переделаны под cloze чуть позже.
+++
Извиняюсь, но торрент опять обновлён. Карточки в колоде с фразовыми глаголами переделаны в тип Cloze, как описано выше.
[Профиль]  [ЛС] 

PennantR

Стаж: 14 лет 11 месяцев

Сообщений: 34


PennantR · 04-Авг-16 10:04 (спустя 4 дня)

Цитата:
Количество карточек: 27860 (2226 + 9843 + 9766 + 6025) + 4281 (399 + 3422 + 460)
Я правильно понимаю что количество слов равно 27860? Или слова в карточках дублируются?
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 04-Авг-16 13:55 (спустя 3 часа, ред. 04-Авг-16 13:55)

PennantR писал(а):
71166138
Цитата:
Количество карточек: 27860 (2226 + 9843 + 9766 + 6025) + 4281 (399 + 3422 + 460)
Я правильно понимаю что количество слов равно 27860? Или слова в карточках дублируются?
Нет, слов меньше. Здесь указано количество карточек, не слов.
В первых четырех колодах (Basic, Intermediate, Advanced, Proficiency) есть совпадения из-за того что одно и тоже слово может принадлежать разным частям речи и иметь несколько смыслов. То же самое и для Phrasal Verbs - один и тот же фразовый глагол может нести несколько смыслов, в зависимости от контекста. English Idioms - это фразы, т.е. комбинации слов.
В Irregular Verbs 233 тройки глаголов, а остальное (227) - упражнения на повторение.
[Профиль]  [ЛС] 

Reni111

Стаж: 13 лет 5 месяцев

Сообщений: 22


Reni111 · 04-Авг-16 16:01 (спустя 2 часа 5 мин.)

Если обновлюсь, старые данные не потеряются?
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 04-Авг-16 16:45 (спустя 44 мин.)

Reni111 писал(а):
71166943Если обновлюсь, старые данные не потеряются?
Ну, я бы не стал обновлять всё подряд, тем более что первые 4 колоды вообще не менялись. Вы всегда можете экспортировать все свои колоды вместе со статистикой (File->Export), импортировать их под тестовым аккаунтом, обновиться и посмотреть что получилось.
[Профиль]  [ЛС] 

Reni111

Стаж: 13 лет 5 месяцев

Сообщений: 22


Reni111 · 04-Авг-16 18:44 (спустя 1 час 58 мин.)

ufff писал(а):
71167027
Reni111 писал(а):
71166943Если обновлюсь, старые данные не потеряются?
Ну, я бы не стал обновлять всё подряд, тем более что первые 4 колоды вообще не менялись. Вы всегда можете экспортировать все свои колоды вместе со статистикой (File->Export), импортировать их под тестовым аккаунтом, обновиться и посмотреть что получилось.
Просто я по мере продвижения дописываю перевод, колоду 4000 слов один раз тоже не подумав обновил и весь перевод слетел.
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 04-Авг-16 19:24 (спустя 40 мин., ред. 04-Авг-16 19:24)

Reni111, ну, как я выше написал, здесь вам обновлять точно нечего)
На будущее, есть такой вариант обновления:
Загружаете (импортируете) обновленные колоды под тестовым пользователем, удаляете все карточки со словами, которые вы уже прошли и исправили, экспортируете в apkg файл и импортируете получившуюся колоду/колоды под основным аккаунтом. В этом случае содержимое старых карточек не изменится. Но, всегда надо проверять не поменялась ли структура карточек, индексы и тд. Анки делает автоматические бекапы в C:\Users\<user>\Documents\Anki\utrif\backups. Иногда помогает.
[Профиль]  [ЛС] 

Reni111

Стаж: 13 лет 5 месяцев

Сообщений: 22


Reni111 · 05-Авг-16 05:25 (спустя 10 часов)

Ufff спасибо, оказывается я сам туплю, колоды оказываются идут отдельными файлами, тогда нет никаких проблем, главное что в старых файлах нет обновления.
[Профиль]  [ЛС] 

57389748

Стаж: 8 лет 3 месяца

Сообщений: 1


57389748 · 24-Авг-16 18:34 (спустя 19 дней)

Еще загружаюсь, но уже есть вопросы:
1. Я правильно понял - если ничего не менять, то в карточках нет поля для ввода ответа?
2. Куда вставлять указанные коды? В какой файл (у меня линукс, если это важно)?
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 25-Авг-16 12:26 (спустя 17 часов)

57389748 писал(а):
71285474Еще загружаюсь, но уже есть вопросы:
1. Я правильно понял - если ничего не менять, то в карточках нет поля для ввода ответа?
Да. Смотрите скриншот с кошкой.
57389748 писал(а):
712854742. Куда вставлять указанные коды? В какой файл (у меня линукс, если это важно)?
https://www.youtube.com/watch?v=F1j1Zx0mXME
[Профиль]  [ЛС] 

Meldur

Стаж: 10 лет 9 месяцев

Сообщений: 3


Meldur · 14-Ноя-16 13:36 (спустя 2 месяца 20 дней, ред. 14-Ноя-16 16:46)

Thank you very much
How did you convert this course? How did you get all the information into different fields in Anki? When I try to convert 'Supermemo UX Français Extrême' to Anki, I get all the information in two Anki fields (Front & Back). Did you do it manually? (If so, WOW!)
RU (google translation):
Цитата:
Большое спасибо: D
Как вы преобразовать этот курс? Как вы получите всю информацию в различных областях в Анки? Когда я пытаюсь преобразовать 'SuperMemo UX Français экстремальными' в Анки, я получаю всю информацию в двух полях Анки (Front & назад). Вы делали это вручную? (Если это так, WOW!)
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 14-Ноя-16 14:26 (спустя 49 мин.)

Meldur писал(а):
71820639How did you convert this course? How did you get all those information in different fields in Anki? When I try to convert 'Supermemo UX Français Extrême' to Anki, I get all the information in two Anki fields (Front & Back). Did you do it manually? (If so, WOW!)
No, not manually. I suppose you've already seen the smux-anki-converter (available on github). It can be used not only for converting to Anki but also as a supermemo resource extractor. It generates media files and, what's more, xml files containing structured text of all the cards in a super memo deck. Then, you just write a parser in Python (or any programming language you like), extract all necessary data, put it in a CSV file and export it to Anki.
RU (google translate) писал(а):
Нет, не вручную. Я полагаю, вы уже видели SMUX-Анки-конвертер (доступен на GitHub). Он может быть использован не только для преобразования в Анки, но и в качестве экстрактора SuperMemo ресурсов. Он генерирует медиа-файлы и, более того, XML-файлы, содержащие структурированный текст всех карт в супер-памятки палубе. Затем вы просто написать парсер в Python (или любой другой язык программирования вам нравится), извлечь все необходимые данные, поместить его в CSV файл и экспортировать его в Анки.
[Профиль]  [ЛС] 

Meldur

Стаж: 10 лет 9 месяцев

Сообщений: 3


Meldur · 14-Ноя-16 16:47 (спустя 2 часа 20 мин., ред. 14-Ноя-16 16:47)

Thank you for your quick answer.
Yes, I know the smux-anki-converter, but I never used it just as an extractor. That's clever
Now I just have to learn how to programme.
You don't have an easily configurable parser lying around by any chance?
RU (google translation)
Цитата:
Спасибо за Ваш быстрый ответ.
Да, я знаю, что SMUX-Анки-конвертер, но я никогда не использовал его так же, как в экстрактор. Это умный
Теперь я просто должен научиться программировать.
Вы не имеете легко настраиваемый синтаксический анализатор, лежащих вокруг случайно?
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 14-Ноя-16 19:41 (спустя 2 часа 54 мин., ред. 14-Ноя-16 19:41)

Meldur писал(а):
71821740You don't have an easily configurable parser lying around by any chance?
Those were completely "ad-hoc" scripts written in one pass in a couple of hours or so. Here is an example of the script used for parsing EEBasic deck
скрытый текст
sm2anki_config.py
скрытый текст
Код:

import os.path
CARD_ID_PREFIX = "eebasic"
DATA_DIR = "../EEBasic/data"
MEDIA_DIR = os.path.join(DATA_DIR, "media")
COURSE_XML = os.path.join(DATA_DIR, "course.xml")
OUTPUT_CSV = "eebasic.csv"
MEDIA_OUTPUT_DIR = "../EEBasic.media"
COPY_RESOURCES = True
sm2anki.py (beware! NC-21)
скрытый текст
Код:

import os
import os.path
import csv
import shutil
from bs4 import BeautifulSoup, NavigableString
from sm2anki_config import *
def get_xml_id(id):
    return "item%05d.xml" % (id,)
def get_xml_file(id):
    return os.path.join(DATA_DIR, get_xml_id(id))
def get_resource_id(id, suffix, ext):
    return "%05d%s.%s" % (id, suffix, ext,)
def get_resource_file(id, suffix, ext):
    return os.path.join(MEDIA_DIR, get_resource_id(id, suffix, ext))
def decompose_leading_siblings(sfrom):
    s1 = sfrom.next_sibling
    if s1 is None:
        return
    s0 = s1.previous_sibling
    while s0 is not None:
        if not isinstance(s0, NavigableString):
            s0.decompose()
            s0 = s1.previous_sibling
        else:
            s0 = s0.previous_sibling
def decompose_trailing_siblings(sfrom):
    s1 = sfrom.previous_sibling
    if s1 is None:
        return
    s0 = s1.next_sibling
    while s0 is not None:
        if not isinstance(s0, NavigableString):
            s0.decompose()
            s0 = s1.next_sibling
        else:
            s0 = s0.next_sibling
def decompose_leading_br(parent):
    s = None
    for e in parent.children:
        if isinstance(e, NavigableString):
            s = e
        elif e.name == "br":
            s = e
        else:
            break
    if s is not None:
        decompose_leading_siblings(s)
def decompose_trailing_br(parent):
    s = None
    for e in reversed(list(parent.children)):
        if isinstance(e, NavigableString):
            s = e
        elif e.name == "br":
            s = e
        else:
            break
    if s is not None:
        decompose_trailing_siblings(s)
def insert_after_all(s, slist):
    for e in reversed(list(slist)):
        s.insert_after(e)
def extract_cloze(id, extra):
    filename = get_xml_file(id)
    with open(filename, "rb") as f:
        s = BeautifulSoup(f, "xml")
        s_question = s.item.question
        insert_after_all(s_question.translation, extra)
        # decompose_by_tag(s_question.translation.next_sibling)
        # s_question.translation.insert_after(s.new_tag("br"))
        # s_question.translation.insert_after(s.new_tag("br"))
        decompose_trailing_br(s_question.find("text"))
        decompose_by_tag(s_question.find("text").next_sibling)
        s_question.find("text").insert_after(s.new_tag("br"))
        s_question.find("text").insert_after(s.new_tag("br"))
        s_question.translation.decompose()
        # decompose_trailing_br(s_question)
        s_question.spellpad.replace_with("{{c1::%s}}" % (s_question.spellpad["correct"]))
        s_question.wrap(s.new_tag("div"))
        s_question.unwrap()
        s_question = s.item.div
        return str(s_question)
def decompose_by_tag(s, tagname="br"):
    while s:
        if isinstance(s, NavigableString):
            s = s.next_sibling
        elif s.name == tagname:
            stmp = s.next_sibling
            s.decompose();
            s = stmp
        else:
            break
def cut_by_tagname(slist, tagname):
    newlist = []
    for x in slist:
        if isinstance(x, NavigableString):
            pass
        elif x.name == tagname:
            break
        newlist.append(x)
    return newlist
def extract_sound_answer(id):
    filename = get_xml_file(id)
    with open(filename, "rb") as f:
        s = BeautifulSoup(f, "xml")
        s_extra = s.item.question.translation.parent.next_siblings
        s_extra = cut_by_tagname(s_extra, "small")
        s.item.translation.decompose()
        s_answer = s.item.answer
        while s_answer.select("translation"):
            decompose_leading_siblings(s_answer.br)
        decompose_leading_br(s_answer)
        s_answer.wrap(s.new_tag("div"))
        s_answer.unwrap()
        s_answer = s.item.div
        return str(s_answer), s_extra
def main():
    with open(COURSE_XML, "rb") as fin, open(OUTPUT_CSV, "w", newline="", encoding="utf-8") as fout:
        s = BeautifulSoup(fin, "xml")
        if COPY_RESOURCES and not os.path.exists(MEDIA_OUTPUT_DIR):
            os.mkdir(MEDIA_OUTPUT_DIR)
        w = csv.writer(fout, delimiter=';')
        w.writerow(["id", "keywords", "partofspeech", "question", "answer", "image", "ksound", "ssound", "frequency", "subsets", "topic"])
        # <define-subset id="2" name="KET" />
        subsets = {}
        for subset in s.find_all("define-subset"):
            subsets[subset["id"]] = subset["name"]
        # <element id="179" type="exercise" subtype="2" name="Complete the sentence"
        #   keywords="we" partOfSpeech="pron" frequency="10" subsets="2,4" />
        count = 0
        for s_close in s.find_all("element", type="exercise", subtype="2"):
            ex_id = int(s_close.parent["id"])
            if s_close.parent.get("subsets", ""):
                ex_subsets = ", ".join([subsets[x] for x in s_close.parent["subsets"].split(",")])
            else:
                ex_subsets = ""
            ex_topic = ""
            p = s_close.parent.parent
            while p.name == "element":
                ex_topic = p["name"] + (" / " if ex_topic else "") + ex_topic
                p = p.parent
            cl_id = int(s_close["id"])
            print (cl_id)
            cl_frequency = s_close["frequency"]
            cl_keywords = s_close["keywords"]
            cl_partofspeech = s_close["partOfSpeech"]
            s_cl_parent = s_close.parent
            s_snd = (s_cl_parent.select_one("element[subtype=1]"))
            snd_id = int(s_snd["id"])
            answer, extra = extract_sound_answer(snd_id)
            question = extract_cloze(cl_id, extra)
            #
            # prepare csv row
            card_id = "%s%d" %(CARD_ID_PREFIX, ex_id)
            row = [card_id, cl_keywords, cl_partofspeech, question, answer]
            image_file = get_resource_id(cl_id, "b", "png")
            image_file_new = CARD_ID_PREFIX + image_file
            if os.path.isfile(os.path.join(MEDIA_DIR, image_file)):
                row.append("""<img src="%s"/>""" % (image_file_new, ))
                if COPY_RESOURCES:
                    shutil.copy(os.path.join(MEDIA_DIR, image_file), os.path.join(MEDIA_OUTPUT_DIR, image_file_new))
            else:
                row.append(None)
            short_sound_file = get_resource_id(snd_id, "a", "mp3")
            short_sound_file_new = CARD_ID_PREFIX + short_sound_file
            if os.path.isfile(os.path.join(MEDIA_DIR, short_sound_file)):
                row.append("[sound:%s]" % (short_sound_file_new, ))
                if COPY_RESOURCES:
                    shutil.copy(os.path.join(MEDIA_DIR, short_sound_file), os.path.join(MEDIA_OUTPUT_DIR, short_sound_file_new))
            else:
                row.append(None)
            long_sound_file = get_resource_id(snd_id, "q", "mp3")
            long_sound_file_new = CARD_ID_PREFIX + long_sound_file
            if os.path.isfile(os.path.join(MEDIA_DIR, long_sound_file)):
                row.append("[sound:%s]" % (long_sound_file_new, ))
                if COPY_RESOURCES:
                    shutil.copy(os.path.join(MEDIA_DIR, long_sound_file), os.path.join(MEDIA_OUTPUT_DIR, long_sound_file_new))
            else:
                row.append(None)
            row.append(cl_frequency)
            row.append(ex_subsets)
            row.append(ex_topic)
            w.writerow(row)
            count += 1
        print ("Cards processed:", count)
main()
replace_dupes.py (the script itself is useless but it could be useful to know that there is the jdupes console util that can be used for removing duplicate media files)
скрытый текст
Код:

import sys
import os.path
def main(args):
    if len(args) != 3:
        print (args)
        print("replace_dupes.py <dupes-file> <input-file> <output-file>")
        print("\tdupes file can be generated with 'jdupes -1 -q .' command")
        print("\t remove the files with 'jdupes.exe -d -N -1 .' command then")
        sys.exit(1)
    dupes_file, input_file, output_file = args
    with open(input_file, "r", encoding="utf-8") as f:
        text = f.read()
    with open(dupes_file, "r", encoding="utf-8") as f:
        for line in f:
            line = line.rstrip()
            files = [os.path.basename(x) for x in line.split(" ")]
            print (files)
            to_w = files[0]
            for from_w in files[1:]:
                text = text.replace(from_w, to_w)
    with open(output_file, "w", encoding="utf-8") as f:
        f.write(text)
main(sys.argv[1:])
Frankly speaking, I'm not sure if that's the latest version of the script and even whether it works or not (!). I can't find anything else though.
RU (google translate) писал(а):
Это были полностью "Ad-Hoc" сценарии, написанные за один проход через пару часов или около того. Ниже приведен пример сценария используется для разбора EEBasic палубы
...
Откровенно говоря, я не уверен, если это последняя версия сценария и работает, даже будь то или нет. Я не могу найти что-нибудь еще, хотя.
[Профиль]  [ЛС] 

Meldur

Стаж: 10 лет 9 месяцев

Сообщений: 3


Meldur · 15-Ноя-16 16:02 (спустя 20 часов, ред. 15-Ноя-16 18:44)

большо́е спаси́бо!
By the way, I found a fast way to extract smpak-files (and smdif-files as well). It's also possible to repack them with the updates into one file. Here's the link: http://www.xixiwg.com/soft/224424.html
(It's a Chinese site and Chrome and Firefox had security warnings regarding malicious files, but I downloaded the 'SuperMemo UX课程打包解包软件SMPak 1.72'-file with Edge and checked the file, which was fine.)
RU (google translation):
Цитата:
Кстати, я нашел быстрый способ извлечения smpak-файлов (и smdif-файлы, а). Кроме того, можно упаковать их с обновлениями в один файл. Вот ссылка: http://www.xixiwg.com/soft/224424.html
(Это китайский сайт и Chrome и Firefox были предупреждения о безопасности в отношении вредоносных файлов, но я скачал 'SuperMemo UX 课程 打包 解 包 软件 SMPak 1.72'-файл с краем и проверил файл, который был в порядке.)
[Профиль]  [ЛС] 

Born113

Стаж: 13 лет 9 месяцев

Сообщений: 560

Born113 · 29-Янв-17 17:44 (спустя 2 месяца 14 дней)

hungry_pokute писал(а):
70787387
ufff писал(а):
70786256Большое спасибо! Но, просто скиньте сюда под спойлер ваш стиль карточек текстом целиком. Я его могу и в шапку добавить. Каждый сможет добавить и поле для ввода и изменить цвет фона самостоятельно. А в мобильном приложении это поле отлючаемо в настройках, если что. Просто я в последнее время перестал в водить слова с клавиатуры, а только проговариваю.
Добавление поля ввода и украшательств
Лицевая сторона карточки писал(а):
{{Image}}
{{cloze:Question}}
<br>
{{type:cloze:Question}}
Таблица стилей писал(а):
.card {
font-family: arial;
font-size: 20px;
text-align: center;
color: black;
background-color: #f3f3f3; /* серый фон карточки */
}
.cloze {
font-weight: bold;
color: blue;
}
.trans{
color: #555; /* цвет транскрипции */
}
/* стили поля ввода*/
#typeans {
padding-top: 0.5em;
text-align: center;
max-width: 300px;
}
input#typeans {
border-radius: 9px
}
Обратная сторона карточки писал(а):
{{Image}}
{{cloze:Question}}<br/>
{{type:cloze:Question}} <!-- выводит напечатанный в поле ввода ответ; в случае ошибок, подсвечивает их -->
<br>
<span class="trans">{{TranscriptionBrE}}</span><br/>
<br/>
{{Answer}}
{{SoundKeywords}}
{{SoundDefinition}}
Подскажите, пожалуйста, дилетанту каким образом такие изменения можно внести?
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 29-Янв-17 18:03 (спустя 18 мин.)

Born113 писал(а):
Подскажите, пожалуйста, дилетанту каким образом такие изменения можно внести?
На английском подойдёт?
https://www.youtube.com/watch?v=F1j1Zx0mXME
[Профиль]  [ЛС] 

Born113

Стаж: 13 лет 9 месяцев

Сообщений: 560

Born113 · 29-Янв-17 19:47 (спустя 1 час 44 мин., ред. 30-Янв-17 18:01)

Если такое видео, то хоть на марсианском Спасибо, подойдёт.
==========
А теперь ещё более идиотская просьба: выложите, пожалуйста, исходный код оформления карточек "без украшательств".
Дилетант будет очень благодарен
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 02-Фев-17 19:09 (спустя 3 дня, ред. 02-Фев-17 19:09)

Born113 писал(а):
72371381А теперь ещё более идиотская просьба: выложите, пожалуйста, исходный код оформления карточек "без украшательств".
Дилетант будет очень благодарен
Там нет украшательств. Скачайте колоду и возьмите исходный код оформления сами. Где его взять вы уже посмотрели на видео.
[Профиль]  [ЛС] 

Kibuz

Стаж: 7 лет 11 месяцев

Сообщений: 2


Kibuz · 01-Мар-18 15:02 (спустя 1 год, ред. 01-Мар-18 21:57)

Цитата:
Там где картинок нет - их нет и в SuperMemo UX. Если это не так, то скажите в какой карточке - я исправлю.
Например, карта 1223 имеет изображение.
И у сотен других карт тоже есть фотография. На самом деле, у всех основных карт есть фотография.
Вы пишете, что обновили в 2016 году. Но это не может быть правдой. С 2016 года все карты в базовом курсе имеют фотографии. И некоторые карты также были обновлены в контенте.
например Карта 1223:
[img]http://www.bilder-upload.eu/show.php?file=b333c2-1519899346.png [/img]
Кроме того, все образцы предложений были настроены на музыку в "extreme English Basic" с 2016 года.
На "Extreme English Intermediate" принадлежит каждой карте изображение, примеры предложений здесь не установлены.
[Профиль]  [ЛС] 

ufff

Стаж: 17 лет

Сообщений: 1025

ufff · 01-Мар-18 20:05 (спустя 5 часов, ред. 01-Мар-18 20:05)

Kibuz, внимательно посмотрите на название раздачи. Колоды были сгенерированы в 2016 году на основе Extreme English 2010, а не 2016. С ними и сравнивайте. Ссылка на источник (есть в шапке): SuperMemo UX Extreme English - Система тренировки вокабуляра (комплект английских словарей) [2010, ISO, END / DEU / POL]. Обновление касалось добавление 3 новых колод из комплекта 2010 года: для каждого курса приходилось подстраивать скрипты генерации и колоды выкладывались по мере обработки.
Для извлечения ресурсов использовался кусок из SuperMemo UX to Anki converter, который для более свежих словарей не работал.
[Профиль]  [ЛС] 

Kibuz

Стаж: 7 лет 11 месяцев

Сообщений: 2


Kibuz · 01-Мар-18 22:02 (спустя 1 час 57 мин.)

ufff,
О, верно. Спасибо за разъясняющие слова. Теперь понятно. Мой язык не русский. Я использую переводчик Google, чтобы читать здесь. Sorry.
[Профиль]  [ЛС] 

s0fist

Стаж: 13 лет 10 месяцев

Сообщений: 2


s0fist · 18-Фев-19 00:15 (спустя 11 месяцев)

Может у кого-нибудь есть Supermemo UX Extreme французский/немецкий/испанский курсы в формате Anki?
[Профиль]  [ЛС] 

rrrrsssaaaa

Стаж: 16 лет 8 месяцев

Сообщений: 325


rrrrsssaaaa · 11-Июн-19 09:11 (спустя 3 месяца 21 день)

s0fist
На пиратской бухте есть некоторые.
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error