Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- require 'sqlite3'
- db = SQLite3::Database.new(ARGV[0])
- SEP = "\u001f"
- # First field in deck is frame number from the v6 edition (well
- # actually the id, but the id and frame number seem to match)
- #
- # Which you can verify by looking at the flds of the deck
- # "flds":
- # [ {"name": "id", "rtl": false, "sticky": false, "media": [], "ord": 0, "font": "DejaVu Sans", "size": 14}
- # , {"name": "frameNoV4", "rtl": false, "sticky": false, "media": [], "ord": 1, "font": "MS Shell Dlg 2", "size": 14}
- # , {"name": "frameNoV6", "rtl": false, "sticky": false, "media": [], "ord": 2, "font": "MS Shell Dlg 2", "size": 14}
- # , {"name": "keyword", "rtl": false, "sticky": false, "media": [], "ord": 3, "font": "MS Shell Dlg 2", "size": 14}
- # , {"name": "kanji", "rtl": false, "sticky": false, "media": [], "ord": 4, "font": "DejaVu Sans", "size": 26}
- # , {"name": "strokeDiagram", "rtl": false, "sticky": false, "media": [], "ord": 5, "font": "Courier New", "size": 14}
- # Fields are stored seperated by a special character
- notes_to_order = db.execute('select id,flds from notes').each_with_object(Hash.new) do |(id, flds), h|
- h[id] = flds.split(SEP).first
- end
- # Card appearance order seems to be controlled by due, so set the due
- # to the frame number and we're done.
- arr = db.execute('select id,nid from cards')
- arr.each do |card_id, note_id|
- db.execute('update cards set due = ? where id = ?', notes_to_order[note_id], card_id)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement