Advertisement
Guest User

Untitled

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