test.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import sys
  2. from PyPPUB import ppub_builder
  3. from PyPPUB import mimetypes
  4. import datetime
  5. builder = ppub_builder.PpubBuilder()
  6. def set_if_not_empty(field, question):
  7. answer = input(question)
  8. if(answer == ""):
  9. return
  10. builder.metadata.set_value(field, answer)
  11. set_if_not_empty("title", "[Metadata] Title? ")
  12. set_if_not_empty("tags", "[Metadata] Tags? ")
  13. set_if_not_empty("description", "[Metadata] Description? ")
  14. set_if_not_empty("author", "[Metadata] Author? ")
  15. set_if_not_empty("copyright", "[Metadata] Copyright? ")
  16. set_if_not_empty("licence", "[Metadata] Licence? ")
  17. builder.metadata.set_value("date", datetime.datetime.now().astimezone().isoformat())
  18. for arg in sys.argv[1:]:
  19. print("Adding %s" % arg)
  20. f = open(arg, 'rb')
  21. builder.add_asset(arg, mimetypes.guess_type(arg)[0], f.read())
  22. f.close()
  23. print("Writing output")
  24. f = open("output.ppub", 'wb')
  25. builder.write_to_stream(f)
  26. f.close()
  27. print("Complete")
  28. import ppub
  29. print("Reading")
  30. f = open("output.ppub", 'rb')
  31. pub = ppub.Ppub.from_stream(f)
  32. for i in range(pub.asset_index.asset_count()):
  33. asset = pub.asset_index.get_nth_asset(i)
  34. print("Extracting asset %s" % asset.path)
  35. of = open("asset_%i" % i, 'wb')
  36. of.write(pub.get_asset_data(asset))
  37. of.close()
  38. print("Done")