Giter Club home page Giter Club logo

duolingovocabexporter's People

Contributors

mrjogo avatar

Watchers

 avatar

duolingovocabexporter's Issues

Make it work

截止 2014/09/30,duolingo 网站设计如下:

  1. 学过的单词页面在:https://www.duolingo.com/words
  2. 进入此页面时,会 ajax GET https://www.duolingo.com/vocabulary/overview?_=1412073397180 获得单词列表
{
  "language_string": "French",
  "learning_language": "fr",
  "from_language": "en",
  "language_information": {
    "pronoun_mapping": [
      {
        "tenses": {
          "inf": "infinitive",
          "pri": "indicative_present_first_person_singular"
        },
        "pronoun": "je"
      },
      {
        "tenses": {
          "inf": "infinitive",
          "pri": "indicative_present_second_person_singular"
        },
        "pronoun": "tu"
      },
      {
        "tenses": {
          "inf": "infinitive",
          "pri": "indicative_present_third_person_singular"
        },
        "pronoun": "il/elle/on"
      },
      {
        "tenses": {
          "inf": "infinitive",
          "pri": "indicative_present_first_person_plural"
        },
        "pronoun": "nous"
      },
      {
        "tenses": {
          "inf": "infinitive",
          "pri": "indicative_present_second_person_plural"
        },
        "pronoun": "vous"
      },
      {
        "tenses": {
          "inf": "infinitive",
          "pri": "indicative_present_third_person_plural"
        },
        "pronoun": "ils/elles"
      }
    ],
    "tenses": {
      "indicative": [
        {
          "tense_string": "Present",
          "tense": "pri"
        }
      ],
      "others": [
        {
          "tense_string": "Infinitive",
          "tense": "inf"
        }
      ]
    }
  },
  "vocab_overview": [
    {
      "strength_bars": 4,
      "infinitive": null,
      "normalized_string": "un",
      "pos": "Determiner",
      "last_practiced_ms": 1412000668000,
      "skill": "Basics 1",
      "related_lexemes": [
        "808d0c8ede6981e3d9a7a87153601e38"
      ],
      "last_practiced": "2014-09-29T14:24:28Z",
      "strength": 0.936857,
      "skill_url_title": "Basics-1",
      "gender": "Masculine",
      "id": "be70637289b60b17de3b22270462e5bf",
      "lexeme_id": "be70637289b60b17de3b22270462e5bf",
      "word_string": "un"
    },
    {
      "strength_bars": 3,
      "infinitive": "voir",
      "normalized_string": "vois",
      "pos": "Verb",
      "last_practiced_ms": 1412000668000,
      "skill": "Verbs: Present 2",
      "related_lexemes": [],
      "last_practiced": "2014-09-29T14:24:28Z",
      "strength": 0.664328,
      "skill_url_title": "Verbs:-Present-2",
      "gender": null,
      "id": "19e9b30a1277f694b6a448d953b801ff",
      "lexeme_id": "19e9b30a1277f694b6a448d953b801ff",
      "word_string": "vois"
    },
    // ...
}
  1. 页面滚动时,会 jsonp GET https://d.duolingo.com/words/hints/fr/en 获得单词的翻译

请求原始 URL 例如:

https://d.duolingo.com/words/hints/fr/en?callback=jQuery1710007419851172346892_1412072330837&tokens=%5B%22oiseau%22%2C%22mettent%22%2C%22poulet%22%2C%22cuisine%22%2C%22dis%22%2C%22donne%22%2C%22merci%22%2C%22pomme%22%2C%22ma%22%2C%22gagne%22%5D&_=1412072745906

即:

https://d.duolingo.com/words/hints/fr/en?callback=jQuery1710007419851172346892_1412072330837&tokens=["oiseau","mettent","poulet","cuisine","dis","donne","merci","pomme","ma","gagne"]&_=1412072745906

亦即:

https://d.duolingo.com/words/hints/fr/en

_   1412072745906
callback    jQuery1710007419851172346892_1412072330837
tokens  ["oiseau","mettent","poulet","cuisine","dis","donne","merci","pomme","ma","gagne"]

3.3. 回复如:

{
  "cuisine": [
    "(I) cook/am cooking",
    "(he/she/it) cooks/is cooking",
    "(you) cook!",
    "(I) cook",
    "(he/she/it) cooks",
    "(I) fix/am fixing",
    "(he/she/it) fixes/is fixing",
    "(you) fix!",
    "(I) fix",
    "(he/she/it) fixes",
    "(I) grill/am grilling",
    "(he/she/it) grills/is grilling",
    "(you) grill!",
    "(I) grill",
    "(he/she/it) grills",
    "kitchen",
    "galley",
    "kitchen units",
    "kitchen furniture",
    "cookery",
    "cooking",
    "food",
    "jiggery-pokery",
    "intrigues",
    "kitchens"
  ],
  "ma": [
    "my"
  ],
  "mettent": [
    "(they) put/are putting",
    "(they) put",
    "(they) put on/are putting on",
    "(they) put on",
    "(they) wear/are wearing",
    "(they) wear",
    "(they) lay/are laying",
    "(they) lay",
    "(they) set/are setting",
    "(they) set",
    "(they) spill/are spilling",
    "(they) spill"
  ],
  "merci": [
    "thank you",
    "mercy",
    "thanks"
  ],
  "oiseau": [
    "bird",
    "oddball"
  ],
  "donne": [
    "(I) deal",
    "(I) give/am giving",
    "(he/she/it) gives/is giving",
    "(you) give!",
    "(I) give",
    "(he/she/it) gives",
    "(I) deal/am dealing",
    "(he/she/it) deals/is dealing",
    "(you) deal!",
    "(he/she/it) deals",
    "(I) show/am showing",
    "(he/she/it) shows/is showing",
    "(you) show!",
    "(I) show",
    "(he/she/it) shows",
    "(I) put on/am putting on",
    "(he/she/it) puts on/is putting on",
    "(you) put on!",
    "(I) put on",
    "(he/she/it) puts on",
    "(I) produce/am producing",
    "(he/she/it) produces/is producing",
    "(you) produce!",
    "(I) produce",
    "(he/she/it) produces",
    "(I) yield/am yielding",
    "(he/she/it) yields/is yielding",
    "(you) yield!",
    "(I) yield",
    "(he/she/it) yields",
    "(I) grass on/am grassing on",
    "(he/she/it) grasses on/is grassing on",
    "(you) grass on!",
    "(I) grass on",
    "(he/she/it) grasses on",
    "(I) fink on/am finking on",
    "(he/she/it) finks on/is finking on",
    "(you) fink on!",
    "(I) fink on",
    "(he/she/it) finks on",
    "(I) inform on/am informing on",
    "(he/she/it) informs on/is informing on",
    "(you) inform on!",
    "(I) inform on",
    "(he/she/it) informs on",
    "(I) produce a crop/am producing a crop",
    "(he/she/it) produces a crop/is producing a crop",
    "(you) produce a crop!",
    "(I) produce a crop",
    "(he/she/it) produces a crop",
    "(I) yield a crop/am yielding a crop",
    "(he/she/it) yields a crop/is yielding a crop",
    "(you) yield a crop!",
    "(I) yield a crop",
    "(he/she/it) yields a crop",
    "(I) am playing",
    "(he/she/it) is playing",
    "(you) be playing!",
    "(I) attack/am attacking",
    "(he/she/it) attacks/is attacking",
    "(you) attack!",
    "(I) attack",
    "(he/she/it) attacks",
    "(I) go into action/am going into action",
    "(he/she/it) goes into action/is going into action",
    "(you) go into action!",
    "(I) go into action",
    "(he/she/it) goes into action",
    "(I) am showing",
    "(he/she/it) is showing",
    "(you) be showing!",
    "(I) am put on",
    "(he/she/it) is put on",
    "(you) be put on!",
    "order"
  ],
  "pomme": [
    "apple",
    "(I) form a heart/am forming a heart",
    "(he/she/it) forms a heart/is forming a heart",
    "(you) form a heart!",
    "(I) form a heart",
    "(he/she/it) forms a heart",
    "rose",
    "shower-head",
    "pommel",
    "knob",
    "truck",
    "mug",
    "sucker"
  ],
  "poulet": [
    "chicken",
    "cop",
    "billet-doux"
  ],
  "gagne": [
    "(I) win/am winning",
    "(he/she/it) wins/is winning",
    "(you) win!",
    "(I) win",
    "(he/she/it) wins",
    "(I) earn/am earning",
    "(he/she/it) earns/is earning",
    "(you) earn!",
    "(I) earn",
    "(he/she/it) earns",
    "(I) gain/am gaining",
    "(he/she/it) gains/is gaining",
    "(you) gain!",
    "(I) gain",
    "(he/she/it) gains",
    "(I) save/am saving",
    "(he/she/it) saves/is saving",
    "(you) save!",
    "(I) save",
    "(he/she/it) saves",
    "(I) win [somebody] over/am winning [somebody] over",
    "(he/she/it) wins [somebody] over/is winning [somebody] over",
    "(you) win [somebody] over!",
    "(I) win [somebody] over",
    "(he/she/it) wins [somebody] over",
    "(I) reach/am reaching",
    "(he/she/it) reaches/is reaching",
    "(you) reach!",
    "(I) reach",
    "(he/she/it) reaches",
    "(I) get to/am getting to",
    "(he/she/it) gets to/is getting to",
    "(you) get to!",
    "(I) get to",
    "(he/she/it) gets to",
    "(I) spread to/am spreading to",
    "(he/she/it) spreads to/is spreading to",
    "(you) spread to!",
    "(I) spread to",
    "(he/she/it) spreads to",
    "(I) overcome/am overcoming",
    "(he/she/it) overcomes/is overcoming",
    "(you) overcome!",
    "(I) overcome",
    "(he/she/it) overcomes",
    "(I) beat/am beating",
    "(he/she/it) beats/is beating",
    "(you) beat!",
    "(I) beat",
    "(he/she/it) beats",
    "(I) encroach/am encroaching",
    "(he/she/it) encroaches/is encroaching",
    "(you) encroach!",
    "(I) encroach",
    "(he/she/it) encroaches"
  ],
  "dis": [
    "(I/you) say",
    "(you) say!",
    "(I/you) recite",
    "(you) recite!",
    "(I/you) read",
    "(you) read!",
    "(I/you) tell",
    "(you) tell!",
    "(I/you) state",
    "(you) state!",
    "(I/you) show",
    "(you) show!",
    "(I/you) express",
    "(you) express!",
    "(I/you) think",
    "(you) think!",
    "(I/you) tell oneself",
    "(you) tell oneself!",
    "(I/you) claim to be",
    "(you) claim to be!",
    "(I/you) say one is",
    "(you) say one is!",
    "(I/you) said",
    "(I) say/am saying",
    "(you) say/are saying",
    "(I/you) recited",
    "(I) recite/am reciting",
    "(you) recite/are reciting",
    "(I) read/am reading",
    "(you) read/are reading",
    "(I/you) told",
    "(I) tell/am telling",
    "(you) tell/are telling",
    "(I/you) stated",
    "(I) state/am stating",
    "(you) state/are stating",
    "(I/you) showed",
    "(I) show/am showing",
    "(you) show/are showing",
    "(I/you) expressed",
    "(I) express/am expressing",
    "(you) express/are expressing",
    "(I/you) thought",
    "(I) think/am thinking",
    "(you) think/are thinking",
    "(I/you) told oneself",
    "(I) tell oneself/am telling oneself",
    "(you) tell oneself/are telling oneself",
    "(I/you) claimed to be",
    "(I) claim to be/am claiming to be",
    "(you) claim to be/are claiming to be",
    "(I/you) said one is",
    "(I) say one is/am saying one is",
    "(you) say one is/are saying one is"
  ]
}

其中 duolingo 在右边卡片显示的是回复中的第一个解释

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.