pdftotext-postprocess.rb 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #!/usr/bin/env ruby
  2. require 'unicode'
  3. #
  4. #
  5. #
  6. #
  7. txt = Unicode::compose(ARGF.read)
  8. ###########################################################
  9. ### Pagebreaks
  10. txt.gsub!(" ", "")
  11. ###########################################################
  12. ### Page footer
  13. txt.gsub!(/[A-Z]\d_[A-Z]{2}\(\d{4}\)\d{2}-\d{2}\([A-Z]{3}\)_[A-Z]{2}\.docx
  14. +\d+
  15. +[A-Z]{2} \d{3}\.\d{3}/, "")
  16. ###########################################################
  17. ### Corrections marker
  18. txt.gsub!(/ПОПРАВКИ В ПОДАДЕНИТЕ ГЛАСОВЕ И НАМЕРЕНИЯ ЗА ГЛАСУВАНЕ.+?RÖSTER/m, "
  19. <!-- \\0 -->
  20. ")
  21. ### fix sequence
  22. txt.gsub!(/
  23. (\d+)
  24. +(\d{2}\/\d{2}\/\d{4} \d{2}:\d{2}:\d{2}.\d{3})/, "
  25. \\2
  26. \\1")
  27. ### fix sequence
  28. txt.gsub!(/
  29. ([A-Z]\d\-\d{4}\/\d{4}\s*-\s*[^\n]+)
  30. +(\d+\.)/, "
  31. \\2
  32. \\1")
  33. ###########################################################
  34. ### real votes block
  35. txt.gsub!(/(\d+)
  36. ([0+-])/, "
  37. </fraction>
  38. </votes>
  39. <votes type='\\2' count='\\1'>
  40. <fraction>")
  41. ###########################################################
  42. ### one fraction's votes
  43. txt.gsub!(/\n([A-Za-z\/\&]+):[ \n]*/, "
  44. </fraction>
  45. <fraction name='\\1'>")
  46. ###########################################################
  47. ### one agenda item
  48. txt.gsub!(/(\d+)\.
  49. +([A-Z]\d\-\d{4}\/\d{4})\s*-\s*([^\n]+)
  50. +(\d{2})\/(\d{2})\/(\d{4}) (\d{2}:\d{2}:\d{2}).\d{3}/, "
  51. </fraction>
  52. </votes>
  53. </item>
  54. <item id='\\2' remark='\\3' num='\\1' type='b' timestamp='\\6-\\5-\\4T\\7'>
  55. <fraction>")
  56. ###########################################################
  57. ### vote corrections
  58. txt.gsub!(/^([0+-])$/, "
  59. </fraction>
  60. </votes>
  61. <votes type='\\1'>
  62. <fraction name='correction'>
  63. ")
  64. ###########################################################
  65. ### collapse multiple linefeeds
  66. txt.gsub!(/\n\s*\n\s*/, "\n")
  67. ###########################################################
  68. ### append closing xml tags
  69. txt <<= "</fraction>
  70. </votes>
  71. </item>"
  72. ###########################################################
  73. ### clean/collapse some closing xml tags
  74. txt.gsub!(/<fraction>
  75. <\/fraction>
  76. <\/votes>
  77. /, "")
  78. ###########################################################
  79. ### clean/collapse some closing xml tags
  80. txt.gsub!(/<fraction>
  81. <\/fraction>
  82. /, "")
  83. ###########################################################
  84. ### clean/collapse some closing xml tags
  85. txt.gsub!(/<\/fraction>
  86. <\/item>/, "</fraction>
  87. </votes><!-- uhu -->
  88. </item>")
  89. txt.gsub!("S&D", "S&amp;D")
  90. txt.sub!("<item", "--><item")
  91. puts "<session><!-- "
  92. puts txt
  93. puts "</session>"