framework_gem 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (872) hide show
  1. checksums.yaml +7 -0
  2. data/lib/EXECUTION_ENGINE.md +282 -0
  3. data/lib/Gemfile +12 -0
  4. data/lib/README.md +138 -0
  5. data/lib/User_Lib/helpers/helpers.rb +13 -0
  6. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_black_rois.rb +7 -0
  7. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_color_rois.rb +9 -0
  8. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_image_rois.rb +7 -0
  9. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_rois.rb +23 -0
  10. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_text_rois.rb +48 -0
  11. data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_video_rois.rb +11 -0
  12. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_black_rois.rb +7 -0
  13. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_color_rois.rb +7 -0
  14. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_image_rois.rb +7 -0
  15. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_rois.rb +23 -0
  16. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_text_rois.rb +7 -0
  17. data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_video_rois.rb +11 -0
  18. data/lib/User_Lib/rois/apple_tv/apple_tv_black_rois.rb +7 -0
  19. data/lib/User_Lib/rois/apple_tv/apple_tv_color_rois.rb +7 -0
  20. data/lib/User_Lib/rois/apple_tv/apple_tv_image_rois.rb +7 -0
  21. data/lib/User_Lib/rois/apple_tv/apple_tv_rois.rb +23 -0
  22. data/lib/User_Lib/rois/apple_tv/apple_tv_text_rois.rb +7 -0
  23. data/lib/User_Lib/rois/apple_tv/apple_tv_video_rois.rb +7 -0
  24. data/lib/User_Lib/rois/black_rois.rb +33 -0
  25. data/lib/User_Lib/rois/color_rois.rb +38 -0
  26. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_black_rois.rb +8 -0
  27. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_color_rois.rb +8 -0
  28. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_image_rois.rb +8 -0
  29. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_rois.rb +26 -0
  30. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_text_rois.rb +8 -0
  31. data/lib/User_Lib/rois/dta/dta_1080/dta_1080_video_rois.rb +8 -0
  32. data/lib/User_Lib/rois/dta/dta_720/dta_720_black_rois.rb +8 -0
  33. data/lib/User_Lib/rois/dta/dta_720/dta_720_color_rois.rb +8 -0
  34. data/lib/User_Lib/rois/dta/dta_720/dta_720_image_rois.rb +8 -0
  35. data/lib/User_Lib/rois/dta/dta_720/dta_720_rois.rb +26 -0
  36. data/lib/User_Lib/rois/dta/dta_720/dta_720_text_rois.rb +8 -0
  37. data/lib/User_Lib/rois/dta/dta_720/dta_720_video_rois.rb +8 -0
  38. data/lib/User_Lib/rois/dta/dta_black_rois.rb +9 -0
  39. data/lib/User_Lib/rois/dta/dta_color_rois.rb +9 -0
  40. data/lib/User_Lib/rois/dta/dta_image_rois.rb +9 -0
  41. data/lib/User_Lib/rois/dta/dta_rois.rb +26 -0
  42. data/lib/User_Lib/rois/dta/dta_text_rois.rb +9 -0
  43. data/lib/User_Lib/rois/dta/dta_video_rois.rb +9 -0
  44. data/lib/User_Lib/rois/image_rois.rb +38 -0
  45. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_black_rois.rb +8 -0
  46. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_color_rois.rb +8 -0
  47. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_image_rois.rb +8 -0
  48. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_rois.rb +26 -0
  49. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_text_rois.rb +8 -0
  50. data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_video_rois.rb +8 -0
  51. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_black_rois.rb +8 -0
  52. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_color_rois.rb +8 -0
  53. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_image_rois.rb +8 -0
  54. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_rois.rb +26 -0
  55. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_text_rois.rb +8 -0
  56. data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_video_rois.rb +8 -0
  57. data/lib/User_Lib/rois/mdn/mdn_black_rois.rb +9 -0
  58. data/lib/User_Lib/rois/mdn/mdn_color_rois.rb +9 -0
  59. data/lib/User_Lib/rois/mdn/mdn_image_rois.rb +9 -0
  60. data/lib/User_Lib/rois/mdn/mdn_rois.rb +26 -0
  61. data/lib/User_Lib/rois/mdn/mdn_text_rois.rb +13 -0
  62. data/lib/User_Lib/rois/mdn/mdn_video_rois.rb +9 -0
  63. data/lib/User_Lib/rois/mobile/android/android_black_rois.rb +8 -0
  64. data/lib/User_Lib/rois/mobile/android/android_color_rois.rb +8 -0
  65. data/lib/User_Lib/rois/mobile/android/android_image_rois.rb +8 -0
  66. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_black_rois.rb +8 -0
  67. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_color_rois.rb +8 -0
  68. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_image_rois.rb +43 -0
  69. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_rois.rb +22 -0
  70. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_text_rois.rb +8 -0
  71. data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_video_rois.rb +8 -0
  72. data/lib/User_Lib/rois/mobile/android/android_rois.rb +22 -0
  73. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_black_rois.rb +8 -0
  74. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_color_rois.rb +8 -0
  75. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_image_rois.rb +54 -0
  76. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_rois.rb +22 -0
  77. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_text_rois.rb +8 -0
  78. data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_video_rois.rb +8 -0
  79. data/lib/User_Lib/rois/mobile/android/android_text_rois.rb +8 -0
  80. data/lib/User_Lib/rois/mobile/android/android_video_rois.rb +8 -0
  81. data/lib/User_Lib/rois/mobile/ios/ios_black_rois.rb +8 -0
  82. data/lib/User_Lib/rois/mobile/ios/ios_color_rois.rb +8 -0
  83. data/lib/User_Lib/rois/mobile/ios/ios_image_rois.rb +8 -0
  84. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_black_rois.rb +8 -0
  85. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_color_rois.rb +8 -0
  86. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_image_rois.rb +8 -0
  87. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_rois.rb +22 -0
  88. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_text_rois.rb +8 -0
  89. data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_video_rois.rb +8 -0
  90. data/lib/User_Lib/rois/mobile/ios/ios_rois.rb +22 -0
  91. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_black_rois.rb +8 -0
  92. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_color_rois.rb +8 -0
  93. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_image_rois.rb +8 -0
  94. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_rois.rb +22 -0
  95. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_text_rois.rb +8 -0
  96. data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_video_rois.rb +8 -0
  97. data/lib/User_Lib/rois/mobile/ios/ios_text_rois.rb +8 -0
  98. data/lib/User_Lib/rois/mobile/ios/ios_video_rois.rb +8 -0
  99. data/lib/User_Lib/rois/mobile/mobile_black_rois.rb +8 -0
  100. data/lib/User_Lib/rois/mobile/mobile_color_rois.rb +12 -0
  101. data/lib/User_Lib/rois/mobile/mobile_image_rois.rb +38 -0
  102. data/lib/User_Lib/rois/mobile/mobile_rois.rb +22 -0
  103. data/lib/User_Lib/rois/mobile/mobile_text_rois.rb +8 -0
  104. data/lib/User_Lib/rois/mobile/mobile_video_rois.rb +8 -0
  105. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_black_rois.rb +7 -0
  106. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_color_rois.rb +9 -0
  107. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_image_rois.rb +7 -0
  108. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_rois.rb +23 -0
  109. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_text_rois.rb +8 -0
  110. data/lib/User_Lib/rois/passport/passport_1080/passport_1080_video_rois.rb +8 -0
  111. data/lib/User_Lib/rois/passport/passport_720/passport_720_black_rois.rb +7 -0
  112. data/lib/User_Lib/rois/passport/passport_720/passport_720_color_rois.rb +7 -0
  113. data/lib/User_Lib/rois/passport/passport_720/passport_720_image_rois.rb +7 -0
  114. data/lib/User_Lib/rois/passport/passport_720/passport_720_rois.rb +23 -0
  115. data/lib/User_Lib/rois/passport/passport_720/passport_720_text_rois.rb +7 -0
  116. data/lib/User_Lib/rois/passport/passport_720/passport_720_video_rois.rb +7 -0
  117. data/lib/User_Lib/rois/passport/passport_black_rois.rb +7 -0
  118. data/lib/User_Lib/rois/passport/passport_color_rois.rb +7 -0
  119. data/lib/User_Lib/rois/passport/passport_image_rois.rb +7 -0
  120. data/lib/User_Lib/rois/passport/passport_rois.rb +23 -0
  121. data/lib/User_Lib/rois/passport/passport_text_rois.rb +7 -0
  122. data/lib/User_Lib/rois/passport/passport_video_rois.rb +7 -0
  123. data/lib/User_Lib/rois/rois.rb +22 -0
  124. data/lib/User_Lib/rois/roku/roku_720/roku_720_black_rois.rb +37 -0
  125. data/lib/User_Lib/rois/roku/roku_720/roku_720_color_rois.rb +336 -0
  126. data/lib/User_Lib/rois/roku/roku_720/roku_720_image_rois.rb +235 -0
  127. data/lib/User_Lib/rois/roku/roku_720/roku_720_rois.rb +23 -0
  128. data/lib/User_Lib/rois/roku/roku_720/roku_720_text_rois.rb +1523 -0
  129. data/lib/User_Lib/rois/roku/roku_720/roku_720_video_rois.rb +32 -0
  130. data/lib/User_Lib/rois/roku/roku_black_rois.rb +14 -0
  131. data/lib/User_Lib/rois/roku/roku_color_rois.rb +9 -0
  132. data/lib/User_Lib/rois/roku/roku_image_rois.rb +13 -0
  133. data/lib/User_Lib/rois/roku/roku_rois.rb +23 -0
  134. data/lib/User_Lib/rois/roku/roku_text_rois.rb +9 -0
  135. data/lib/User_Lib/rois/roku/roku_video_rois.rb +9 -0
  136. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_black_rois.rb +12 -0
  137. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_color_rois.rb +11 -0
  138. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_image_rois.rb +12 -0
  139. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_rois.rb +23 -0
  140. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_text_rois.rb +12 -0
  141. data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_video_rois.rb +12 -0
  142. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_black_rois.rb +12 -0
  143. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_color_rois.rb +12 -0
  144. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_image_rois.rb +12 -0
  145. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_rois.rb +23 -0
  146. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_text_rois.rb +12 -0
  147. data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_video_rois.rb +12 -0
  148. data/lib/User_Lib/rois/roku_tv/roku_tv_black_rois.rb +12 -0
  149. data/lib/User_Lib/rois/roku_tv/roku_tv_color_rois.rb +12 -0
  150. data/lib/User_Lib/rois/roku_tv/roku_tv_image_rois.rb +12 -0
  151. data/lib/User_Lib/rois/roku_tv/roku_tv_rois.rb +23 -0
  152. data/lib/User_Lib/rois/roku_tv/roku_tv_text_rois.rb +12 -0
  153. data/lib/User_Lib/rois/roku_tv/roku_tv_video_rois.rb +12 -0
  154. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_black_rois.rb +13 -0
  155. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_color_rois.rb +29 -0
  156. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_image_rois.rb +9 -0
  157. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_rois.rb +23 -0
  158. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_text_rois.rb +92 -0
  159. data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_video_rois.rb +11 -0
  160. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_black_rois.rb +9 -0
  161. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_color_rois.rb +9 -0
  162. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_image_rois.rb +9 -0
  163. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_rois.rb +23 -0
  164. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_text_rois.rb +12 -0
  165. data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_video_rois.rb +11 -0
  166. data/lib/User_Lib/rois/samsung_tv/samsung_tv_black_rois.rb +9 -0
  167. data/lib/User_Lib/rois/samsung_tv/samsung_tv_color_rois.rb +9 -0
  168. data/lib/User_Lib/rois/samsung_tv/samsung_tv_image_rois.rb +9 -0
  169. data/lib/User_Lib/rois/samsung_tv/samsung_tv_rois.rb +23 -0
  170. data/lib/User_Lib/rois/samsung_tv/samsung_tv_text_rois.rb +12 -0
  171. data/lib/User_Lib/rois/samsung_tv/samsung_tv_video_rois.rb +9 -0
  172. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_black_rois.rb +8 -0
  173. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_color_rois.rb +8 -0
  174. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_image_rois.rb +8 -0
  175. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_rois.rb +26 -0
  176. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_text_rois.rb +8 -0
  177. data/lib/User_Lib/rois/sara/sara_1080/sara_1080_video_rois.rb +8 -0
  178. data/lib/User_Lib/rois/sara/sara_720/sara_720_black_rois.rb +8 -0
  179. data/lib/User_Lib/rois/sara/sara_720/sara_720_color_rois.rb +8 -0
  180. data/lib/User_Lib/rois/sara/sara_720/sara_720_image_rois.rb +8 -0
  181. data/lib/User_Lib/rois/sara/sara_720/sara_720_rois.rb +26 -0
  182. data/lib/User_Lib/rois/sara/sara_720/sara_720_text_rois.rb +8 -0
  183. data/lib/User_Lib/rois/sara/sara_720/sara_720_video_rois.rb +8 -0
  184. data/lib/User_Lib/rois/sara/sara_black_rois.rb +9 -0
  185. data/lib/User_Lib/rois/sara/sara_color_rois.rb +9 -0
  186. data/lib/User_Lib/rois/sara/sara_image_rois.rb +9 -0
  187. data/lib/User_Lib/rois/sara/sara_rois.rb +26 -0
  188. data/lib/User_Lib/rois/sara/sara_text_rois.rb +9 -0
  189. data/lib/User_Lib/rois/sara/sara_video_rois.rb +9 -0
  190. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_black_rois.rb +9 -0
  191. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_color_rois.rb +17 -0
  192. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_image_rois.rb +19 -0
  193. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_rois.rb +23 -0
  194. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_text_rois.rb +47 -0
  195. data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_video_rois.rb +23 -0
  196. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_black_rois.rb +9 -0
  197. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_color_rois.rb +9 -0
  198. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_image_rois.rb +9 -0
  199. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_rois.rb +23 -0
  200. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_text_rois.rb +17 -0
  201. data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_video_rois.rb +11 -0
  202. data/lib/User_Lib/rois/stb/iguide/iguide_black_rois.rb +9 -0
  203. data/lib/User_Lib/rois/stb/iguide/iguide_color_rois.rb +9 -0
  204. data/lib/User_Lib/rois/stb/iguide/iguide_image_rois.rb +9 -0
  205. data/lib/User_Lib/rois/stb/iguide/iguide_rois.rb +23 -0
  206. data/lib/User_Lib/rois/stb/iguide/iguide_text_rois.rb +9 -0
  207. data/lib/User_Lib/rois/stb/iguide/iguide_video_rois.rb +9 -0
  208. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_black_rois.rb +8 -0
  209. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_color_rois.rb +8 -0
  210. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_image_rois.rb +12 -0
  211. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_rois.rb +23 -0
  212. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_text_rois.rb +23 -0
  213. data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_video_rois.rb +11 -0
  214. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_black_rois.rb +46 -0
  215. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_color_rois.rb +142 -0
  216. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_image_rois.rb +103 -0
  217. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_black_rois.rb +6 -0
  218. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_color_rois.rb +6 -0
  219. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_image_rois.rb +6 -0
  220. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_rois.rb +23 -0
  221. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_text_rois.rb +7 -0
  222. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_video_rois.rb +7 -0
  223. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_rois.rb +23 -0
  224. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_black_rois.rb +6 -0
  225. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_color_rois.rb +6 -0
  226. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_image_rois.rb +6 -0
  227. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_rois.rb +23 -0
  228. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_text_rois.rb +7 -0
  229. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_video_rois.rb +7 -0
  230. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_black_rois.rb +6 -0
  231. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_color_rois.rb +77 -0
  232. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_image_rois.rb +67 -0
  233. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_rois.rb +23 -0
  234. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_text_rois.rb +159 -0
  235. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_video_rois.rb +17 -0
  236. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_text_rois.rb +221 -0
  237. data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_video_rois.rb +26 -0
  238. data/lib/User_Lib/rois/stb/odn/odn_black_rois.rb +10 -0
  239. data/lib/User_Lib/rois/stb/odn/odn_color_rois.rb +10 -0
  240. data/lib/User_Lib/rois/stb/odn/odn_image_rois.rb +58 -0
  241. data/lib/User_Lib/rois/stb/odn/odn_rois.rb +23 -0
  242. data/lib/User_Lib/rois/stb/odn/odn_text_rois.rb +70 -0
  243. data/lib/User_Lib/rois/stb/odn/odn_video_rois.rb +19 -0
  244. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_black_rois.rb +16 -0
  245. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_color_rois.rb +373 -0
  246. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_black_rois.rb +7 -0
  247. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_color_rois.rb +7 -0
  248. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_image_rois.rb +7 -0
  249. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_rois.rb +23 -0
  250. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_text_rois.rb +7 -0
  251. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_video_rois.rb +7 -0
  252. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_black_rois.rb +8 -0
  253. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_color_rois.rb +8 -0
  254. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_image_rois.rb +8 -0
  255. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_rois.rb +26 -0
  256. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_text_rois.rb +8 -0
  257. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_video_rois.rb +8 -0
  258. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_black_rois.rb +8 -0
  259. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_color_rois.rb +8 -0
  260. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_image_rois.rb +8 -0
  261. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_rois.rb +26 -0
  262. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_text_rois.rb +8 -0
  263. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_video_rois.rb +8 -0
  264. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_black_rois.rb +8 -0
  265. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_color_rois.rb +8 -0
  266. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_image_rois.rb +8 -0
  267. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_rois.rb +26 -0
  268. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_text_rois.rb +8 -0
  269. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_video_rois.rb +8 -0
  270. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_image_rois.rb +1592 -0
  271. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_black_rois.rb +7 -0
  272. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_color_rois.rb +7 -0
  273. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_image_rois.rb +7 -0
  274. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_rois.rb +23 -0
  275. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_text_rois.rb +7 -0
  276. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_video_rois.rb +7 -0
  277. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_rois.rb +23 -0
  278. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_text_rois.rb +2489 -0
  279. data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_video_rois.rb +64 -0
  280. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_black_rois.rb +7 -0
  281. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_color_rois.rb +63 -0
  282. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_black_rois.rb +8 -0
  283. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_color_rois.rb +8 -0
  284. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_image_rois.rb +8 -0
  285. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_rois.rb +26 -0
  286. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_text_rois.rb +8 -0
  287. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_video_rois.rb +8 -0
  288. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_black_rois.rb +8 -0
  289. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_color_rois.rb +8 -0
  290. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_image_rois.rb +8 -0
  291. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_rois.rb +26 -0
  292. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_text_rois.rb +8 -0
  293. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_video_rois.rb +8 -0
  294. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_black_rois.rb +8 -0
  295. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_color_rois.rb +8 -0
  296. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_image_rois.rb +8 -0
  297. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_rois.rb +26 -0
  298. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_text_rois.rb +8 -0
  299. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_video_rois.rb +8 -0
  300. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_image_rois.rb +117 -0
  301. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_rois.rb +23 -0
  302. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_text_rois.rb +84 -0
  303. data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_video_rois.rb +35 -0
  304. data/lib/User_Lib/rois/stb/spectrum/spectrum_black_rois.rb +9 -0
  305. data/lib/User_Lib/rois/stb/spectrum/spectrum_color_rois.rb +17 -0
  306. data/lib/User_Lib/rois/stb/spectrum/spectrum_image_rois.rb +49 -0
  307. data/lib/User_Lib/rois/stb/spectrum/spectrum_rois.rb +23 -0
  308. data/lib/User_Lib/rois/stb/spectrum/spectrum_text_rois.rb +51 -0
  309. data/lib/User_Lib/rois/stb/spectrum/spectrum_video_rois.rb +9 -0
  310. data/lib/User_Lib/rois/stb/stb_black_rois.rb +9 -0
  311. data/lib/User_Lib/rois/stb/stb_color_rois.rb +9 -0
  312. data/lib/User_Lib/rois/stb/stb_image_rois.rb +9 -0
  313. data/lib/User_Lib/rois/stb/stb_rois.rb +23 -0
  314. data/lib/User_Lib/rois/stb/stb_text_rois.rb +9 -0
  315. data/lib/User_Lib/rois/stb/stb_video_rois.rb +9 -0
  316. data/lib/User_Lib/rois/template.txt +23 -0
  317. data/lib/User_Lib/rois/text_rois.rb +36 -0
  318. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_black_rois.rb +7 -0
  319. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_color_rois.rb +9 -0
  320. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_image_rois.rb +7 -0
  321. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_rois.rb +23 -0
  322. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_text_rois.rb +9 -0
  323. data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_video_rois.rb +7 -0
  324. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_black_rois.rb +7 -0
  325. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_color_rois.rb +7 -0
  326. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_image_rois.rb +7 -0
  327. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_rois.rb +23 -0
  328. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_text_rois.rb +7 -0
  329. data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_video_rois.rb +7 -0
  330. data/lib/User_Lib/rois/tivo/tivo_black_rois.rb +7 -0
  331. data/lib/User_Lib/rois/tivo/tivo_color_rois.rb +7 -0
  332. data/lib/User_Lib/rois/tivo/tivo_image_rois.rb +7 -0
  333. data/lib/User_Lib/rois/tivo/tivo_rois.rb +23 -0
  334. data/lib/User_Lib/rois/tivo/tivo_text_rois.rb +7 -0
  335. data/lib/User_Lib/rois/tivo/tivo_video_rois.rb +7 -0
  336. data/lib/User_Lib/rois/video_rois.rb +33 -0
  337. data/lib/User_Lib/screen/apple_tv/apple_tv_dvr.rb +25 -0
  338. data/lib/User_Lib/screen/apple_tv/apple_tv_guide.rb +25 -0
  339. data/lib/User_Lib/screen/apple_tv/apple_tv_library.rb +25 -0
  340. data/lib/User_Lib/screen/apple_tv/apple_tv_live_tv.rb +17 -0
  341. data/lib/User_Lib/screen/apple_tv/apple_tv_login.rb +24 -0
  342. data/lib/User_Lib/screen/apple_tv/apple_tv_main_menu.rb +25 -0
  343. data/lib/User_Lib/screen/apple_tv/apple_tv_mini_guide.rb +25 -0
  344. data/lib/User_Lib/screen/apple_tv/apple_tv_movies.rb +25 -0
  345. data/lib/User_Lib/screen/apple_tv/apple_tv_on_demand.rb +25 -0
  346. data/lib/User_Lib/screen/apple_tv/apple_tv_parental_controls.rb +25 -0
  347. data/lib/User_Lib/screen/apple_tv/apple_tv_product_page.rb +25 -0
  348. data/lib/User_Lib/screen/apple_tv/apple_tv_screen.rb +23 -0
  349. data/lib/User_Lib/screen/apple_tv/apple_tv_search.rb +31 -0
  350. data/lib/User_Lib/screen/apple_tv/apple_tv_settings.rb +25 -0
  351. data/lib/User_Lib/screen/apple_tv/apple_tv_tv_shows.rb +25 -0
  352. data/lib/User_Lib/screen/apple_tv/apple_tv_video_store.rb +25 -0
  353. data/lib/User_Lib/screen/dta/dta_dvr.rb +26 -0
  354. data/lib/User_Lib/screen/dta/dta_guide.rb +26 -0
  355. data/lib/User_Lib/screen/dta/dta_library.rb +26 -0
  356. data/lib/User_Lib/screen/dta/dta_live_tv.rb +26 -0
  357. data/lib/User_Lib/screen/dta/dta_log_in.rb +26 -0
  358. data/lib/User_Lib/screen/dta/dta_main_menu.rb +26 -0
  359. data/lib/User_Lib/screen/dta/dta_mini_guide.rb +26 -0
  360. data/lib/User_Lib/screen/dta/dta_movies.rb +26 -0
  361. data/lib/User_Lib/screen/dta/dta_on_demand.rb +26 -0
  362. data/lib/User_Lib/screen/dta/dta_parental_controls.rb +26 -0
  363. data/lib/User_Lib/screen/dta/dta_product_page.rb +26 -0
  364. data/lib/User_Lib/screen/dta/dta_screen.rb +24 -0
  365. data/lib/User_Lib/screen/dta/dta_search.rb +26 -0
  366. data/lib/User_Lib/screen/dta/dta_settings.rb +26 -0
  367. data/lib/User_Lib/screen/dta/dta_tv_shows.rb +26 -0
  368. data/lib/User_Lib/screen/dta/dta_video_store.rb +26 -0
  369. data/lib/User_Lib/screen/mdn/mdn_dvr.rb +26 -0
  370. data/lib/User_Lib/screen/mdn/mdn_guide.rb +26 -0
  371. data/lib/User_Lib/screen/mdn/mdn_library.rb +26 -0
  372. data/lib/User_Lib/screen/mdn/mdn_live_tv.rb +26 -0
  373. data/lib/User_Lib/screen/mdn/mdn_log_in.rb +26 -0
  374. data/lib/User_Lib/screen/mdn/mdn_main_menu.rb +26 -0
  375. data/lib/User_Lib/screen/mdn/mdn_mini_guide.rb +26 -0
  376. data/lib/User_Lib/screen/mdn/mdn_movies.rb +26 -0
  377. data/lib/User_Lib/screen/mdn/mdn_on_demand.rb +26 -0
  378. data/lib/User_Lib/screen/mdn/mdn_parental_controls.rb +26 -0
  379. data/lib/User_Lib/screen/mdn/mdn_product_page.rb +26 -0
  380. data/lib/User_Lib/screen/mdn/mdn_screen.rb +24 -0
  381. data/lib/User_Lib/screen/mdn/mdn_search.rb +26 -0
  382. data/lib/User_Lib/screen/mdn/mdn_settings.rb +26 -0
  383. data/lib/User_Lib/screen/mdn/mdn_tv_shows.rb +26 -0
  384. data/lib/User_Lib/screen/mdn/mdn_video_store.rb +26 -0
  385. data/lib/User_Lib/screen/mobile/android/android_devices.rb +35 -0
  386. data/lib/User_Lib/screen/mobile/android/android_dvr.rb +337 -0
  387. data/lib/User_Lib/screen/mobile/android/android_favorites.rb +164 -0
  388. data/lib/User_Lib/screen/mobile/android/android_guide.rb +256 -0
  389. data/lib/User_Lib/screen/mobile/android/android_live_tv.rb +372 -0
  390. data/lib/User_Lib/screen/mobile/android/android_login.rb +111 -0
  391. data/lib/User_Lib/screen/mobile/android/android_main_menu.rb +53 -0
  392. data/lib/User_Lib/screen/mobile/android/android_on_demand.rb +402 -0
  393. data/lib/User_Lib/screen/mobile/android/android_parental_controls.rb +73 -0
  394. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_dvr.rb +31 -0
  395. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_guide.rb +39 -0
  396. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_live_tv.rb +104 -0
  397. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_main_menu.rb +27 -0
  398. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_on_demand.rb +35 -0
  399. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_product_page.rb +7 -0
  400. data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_search.rb +26 -0
  401. data/lib/User_Lib/screen/mobile/android/android_privacy_legal.rb +54 -0
  402. data/lib/User_Lib/screen/mobile/android/android_product_page.rb +484 -0
  403. data/lib/User_Lib/screen/mobile/android/android_screen.rb +56 -0
  404. data/lib/User_Lib/screen/mobile/android/android_search.rb +39 -0
  405. data/lib/User_Lib/screen/mobile/android/android_settings.rb +90 -0
  406. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_dvr.rb +58 -0
  407. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_guide.rb +24 -0
  408. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_live_tv.rb +24 -0
  409. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_main_menu.rb +19 -0
  410. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_on_demand.rb +16 -0
  411. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_product_page.rb +45 -0
  412. data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_search.rb +14 -0
  413. data/lib/User_Lib/screen/mobile/devices_mobile.rb +53 -0
  414. data/lib/User_Lib/screen/mobile/dvr_mobile.rb +5 -0
  415. data/lib/User_Lib/screen/mobile/favorites_mobile.rb +5 -0
  416. data/lib/User_Lib/screen/mobile/guide_mobile.rb +5 -0
  417. data/lib/User_Lib/screen/mobile/ios/ios_devices.rb +43 -0
  418. data/lib/User_Lib/screen/mobile/ios/ios_dvr.rb +231 -0
  419. data/lib/User_Lib/screen/mobile/ios/ios_favorites.rb +79 -0
  420. data/lib/User_Lib/screen/mobile/ios/ios_guide.rb +53 -0
  421. data/lib/User_Lib/screen/mobile/ios/ios_live_tv.rb +413 -0
  422. data/lib/User_Lib/screen/mobile/ios/ios_login.rb +76 -0
  423. data/lib/User_Lib/screen/mobile/ios/ios_main_menu.rb +38 -0
  424. data/lib/User_Lib/screen/mobile/ios/ios_on_demand.rb +371 -0
  425. data/lib/User_Lib/screen/mobile/ios/ios_parental_controls.rb +104 -0
  426. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_dvr.rb +14 -0
  427. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_live_tv.rb +36 -0
  428. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_main_menu.rb +7 -0
  429. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_on_demand.rb +7 -0
  430. data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_search.rb +13 -0
  431. data/lib/User_Lib/screen/mobile/ios/ios_privacy_legal.rb +56 -0
  432. data/lib/User_Lib/screen/mobile/ios/ios_product_page.rb +441 -0
  433. data/lib/User_Lib/screen/mobile/ios/ios_screen.rb +60 -0
  434. data/lib/User_Lib/screen/mobile/ios/ios_search.rb +145 -0
  435. data/lib/User_Lib/screen/mobile/ios/ios_settings.rb +34 -0
  436. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_live_tv.rb +34 -0
  437. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_main_menu.rb +7 -0
  438. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_on_demand.rb +7 -0
  439. data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_search.rb +13 -0
  440. data/lib/User_Lib/screen/mobile/live_tv_mobile.rb +73 -0
  441. data/lib/User_Lib/screen/mobile/login_mobile.rb +5 -0
  442. data/lib/User_Lib/screen/mobile/main_menu_mobile.rb +83 -0
  443. data/lib/User_Lib/screen/mobile/mobile_screen.rb +232 -0
  444. data/lib/User_Lib/screen/mobile/on_demand_mobile.rb +70 -0
  445. data/lib/User_Lib/screen/mobile/parental_controls_mobile.rb +5 -0
  446. data/lib/User_Lib/screen/mobile/privacy_legal_mobile.rb +5 -0
  447. data/lib/User_Lib/screen/mobile/product_page_mobile.rb +5 -0
  448. data/lib/User_Lib/screen/mobile/search_mobile.rb +5 -0
  449. data/lib/User_Lib/screen/mobile/settings_mobile.rb +33 -0
  450. data/lib/User_Lib/screen/passport/passport_dvr.rb +25 -0
  451. data/lib/User_Lib/screen/passport/passport_guide.rb +37 -0
  452. data/lib/User_Lib/screen/passport/passport_library.rb +25 -0
  453. data/lib/User_Lib/screen/passport/passport_live_tv.rb +17 -0
  454. data/lib/User_Lib/screen/passport/passport_main_menu.rb +25 -0
  455. data/lib/User_Lib/screen/passport/passport_mini_guide.rb +25 -0
  456. data/lib/User_Lib/screen/passport/passport_movies.rb +25 -0
  457. data/lib/User_Lib/screen/passport/passport_on_demand.rb +25 -0
  458. data/lib/User_Lib/screen/passport/passport_parental_controls.rb +25 -0
  459. data/lib/User_Lib/screen/passport/passport_product_page.rb +25 -0
  460. data/lib/User_Lib/screen/passport/passport_screen.rb +23 -0
  461. data/lib/User_Lib/screen/passport/passport_search.rb +25 -0
  462. data/lib/User_Lib/screen/passport/passport_settings.rb +25 -0
  463. data/lib/User_Lib/screen/passport/passport_tv_shows.rb +25 -0
  464. data/lib/User_Lib/screen/passport/passport_video_store.rb +25 -0
  465. data/lib/User_Lib/screen/roku/brs/roku_guide_brs.rb +12 -0
  466. data/lib/User_Lib/screen/roku/brs/roku_home_brs.rb +12 -0
  467. data/lib/User_Lib/screen/roku/brs/roku_live_tv_brs.rb +12 -0
  468. data/lib/User_Lib/screen/roku/brs/roku_login_brs.rb +103 -0
  469. data/lib/User_Lib/screen/roku/brs/roku_main_menu_brs.rb +46 -0
  470. data/lib/User_Lib/screen/roku/brs/roku_on_demand_brs.rb +12 -0
  471. data/lib/User_Lib/screen/roku/brs/roku_product_page_brs.rb +12 -0
  472. data/lib/User_Lib/screen/roku/brs/roku_screen_brs.rb +9 -0
  473. data/lib/User_Lib/screen/roku/brs/roku_search_brs.rb +12 -0
  474. data/lib/User_Lib/screen/roku/brs/roku_settings_brs.rb +42 -0
  475. data/lib/User_Lib/screen/roku/brs/roku_watch_later_brs.rb +12 -0
  476. data/lib/User_Lib/screen/roku/brs/roku_welcome_brs.rb +12 -0
  477. data/lib/User_Lib/screen/roku/roku_dvr.rb +7 -0
  478. data/lib/User_Lib/screen/roku/roku_guide.rb +590 -0
  479. data/lib/User_Lib/screen/roku/roku_home.rb +346 -0
  480. data/lib/User_Lib/screen/roku/roku_library.rb +26 -0
  481. data/lib/User_Lib/screen/roku/roku_live_tv.rb +210 -0
  482. data/lib/User_Lib/screen/roku/roku_login.rb +795 -0
  483. data/lib/User_Lib/screen/roku/roku_main_menu.rb +425 -0
  484. data/lib/User_Lib/screen/roku/roku_mini_guide.rb +7 -0
  485. data/lib/User_Lib/screen/roku/roku_on_demand.rb +479 -0
  486. data/lib/User_Lib/screen/roku/roku_product_page.rb +483 -0
  487. data/lib/User_Lib/screen/roku/roku_screen.rb +85 -0
  488. data/lib/User_Lib/screen/roku/roku_search.rb +229 -0
  489. data/lib/User_Lib/screen/roku/roku_settings.rb +304 -0
  490. data/lib/User_Lib/screen/roku/roku_watch_later.rb +51 -0
  491. data/lib/User_Lib/screen/roku/roku_welcome.rb +10 -0
  492. data/lib/User_Lib/screen/roku_tv/roku_tv_dvr.rb +14 -0
  493. data/lib/User_Lib/screen/roku_tv/roku_tv_guide.rb +14 -0
  494. data/lib/User_Lib/screen/roku_tv/roku_tv_home.rb +14 -0
  495. data/lib/User_Lib/screen/roku_tv/roku_tv_library.rb +14 -0
  496. data/lib/User_Lib/screen/roku_tv/roku_tv_live_tv.rb +14 -0
  497. data/lib/User_Lib/screen/roku_tv/roku_tv_login.rb +14 -0
  498. data/lib/User_Lib/screen/roku_tv/roku_tv_main_menu.rb +14 -0
  499. data/lib/User_Lib/screen/roku_tv/roku_tv_mini_guide.rb +14 -0
  500. data/lib/User_Lib/screen/roku_tv/roku_tv_on_demand.rb +26 -0
  501. data/lib/User_Lib/screen/roku_tv/roku_tv_product_page.rb +14 -0
  502. data/lib/User_Lib/screen/roku_tv/roku_tv_screen.rb +7 -0
  503. data/lib/User_Lib/screen/roku_tv/roku_tv_search.rb +14 -0
  504. data/lib/User_Lib/screen/roku_tv/roku_tv_settings.rb +14 -0
  505. data/lib/User_Lib/screen/roku_tv/roku_tv_watch_later.rb +14 -0
  506. data/lib/User_Lib/screen/roku_tv/roku_tv_welcome.rb +14 -0
  507. data/lib/User_Lib/screen/samsung_tv/samsung_tv_dvr.rb +24 -0
  508. data/lib/User_Lib/screen/samsung_tv/samsung_tv_guide.rb +24 -0
  509. data/lib/User_Lib/screen/samsung_tv/samsung_tv_library.rb +24 -0
  510. data/lib/User_Lib/screen/samsung_tv/samsung_tv_live_tv.rb +21 -0
  511. data/lib/User_Lib/screen/samsung_tv/samsung_tv_login.rb +13 -0
  512. data/lib/User_Lib/screen/samsung_tv/samsung_tv_main_menu.rb +64 -0
  513. data/lib/User_Lib/screen/samsung_tv/samsung_tv_mini_guide.rb +24 -0
  514. data/lib/User_Lib/screen/samsung_tv/samsung_tv_movies.rb +140 -0
  515. data/lib/User_Lib/screen/samsung_tv/samsung_tv_on_demand.rb +76 -0
  516. data/lib/User_Lib/screen/samsung_tv/samsung_tv_parental_controls.rb +24 -0
  517. data/lib/User_Lib/screen/samsung_tv/samsung_tv_product_page.rb +24 -0
  518. data/lib/User_Lib/screen/samsung_tv/samsung_tv_screen.rb +74 -0
  519. data/lib/User_Lib/screen/samsung_tv/samsung_tv_search.rb +29 -0
  520. data/lib/User_Lib/screen/samsung_tv/samsung_tv_settings.rb +189 -0
  521. data/lib/User_Lib/screen/samsung_tv/samsung_tv_tv_shows.rb +24 -0
  522. data/lib/User_Lib/screen/samsung_tv/samsung_tv_video_store.rb +24 -0
  523. data/lib/User_Lib/screen/sara/sara_dvr.rb +26 -0
  524. data/lib/User_Lib/screen/sara/sara_guide.rb +43 -0
  525. data/lib/User_Lib/screen/sara/sara_library.rb +26 -0
  526. data/lib/User_Lib/screen/sara/sara_live_tv.rb +26 -0
  527. data/lib/User_Lib/screen/sara/sara_log_in.rb +26 -0
  528. data/lib/User_Lib/screen/sara/sara_main_menu.rb +26 -0
  529. data/lib/User_Lib/screen/sara/sara_mini_guide.rb +26 -0
  530. data/lib/User_Lib/screen/sara/sara_movies.rb +26 -0
  531. data/lib/User_Lib/screen/sara/sara_on_demand.rb +26 -0
  532. data/lib/User_Lib/screen/sara/sara_parental_controls.rb +26 -0
  533. data/lib/User_Lib/screen/sara/sara_product_page.rb +26 -0
  534. data/lib/User_Lib/screen/sara/sara_screen.rb +24 -0
  535. data/lib/User_Lib/screen/sara/sara_search.rb +26 -0
  536. data/lib/User_Lib/screen/sara/sara_settings.rb +26 -0
  537. data/lib/User_Lib/screen/sara/sara_tv_shows.rb +26 -0
  538. data/lib/User_Lib/screen/sara/sara_video_store.rb +26 -0
  539. data/lib/User_Lib/screen/stb/iguide/iguide_devices.rb +10 -0
  540. data/lib/User_Lib/screen/stb/iguide/iguide_dvr.rb +10 -0
  541. data/lib/User_Lib/screen/stb/iguide/iguide_favorites.rb +10 -0
  542. data/lib/User_Lib/screen/stb/iguide/iguide_guide.rb +39 -0
  543. data/lib/User_Lib/screen/stb/iguide/iguide_home.rb +10 -0
  544. data/lib/User_Lib/screen/stb/iguide/iguide_library.rb +10 -0
  545. data/lib/User_Lib/screen/stb/iguide/iguide_live_tv.rb +59 -0
  546. data/lib/User_Lib/screen/stb/iguide/iguide_login.rb +10 -0
  547. data/lib/User_Lib/screen/stb/iguide/iguide_main_menu.rb +10 -0
  548. data/lib/User_Lib/screen/stb/iguide/iguide_mini_guide.rb +10 -0
  549. data/lib/User_Lib/screen/stb/iguide/iguide_movies.rb +10 -0
  550. data/lib/User_Lib/screen/stb/iguide/iguide_on_demand.rb +531 -0
  551. data/lib/User_Lib/screen/stb/iguide/iguide_parental_controls.rb +10 -0
  552. data/lib/User_Lib/screen/stb/iguide/iguide_privacy_legal.rb +10 -0
  553. data/lib/User_Lib/screen/stb/iguide/iguide_product_page.rb +10 -0
  554. data/lib/User_Lib/screen/stb/iguide/iguide_quick_menu.rb +7 -0
  555. data/lib/User_Lib/screen/stb/iguide/iguide_screen.rb +21 -0
  556. data/lib/User_Lib/screen/stb/iguide/iguide_search.rb +10 -0
  557. data/lib/User_Lib/screen/stb/iguide/iguide_settings.rb +10 -0
  558. data/lib/User_Lib/screen/stb/iguide/iguide_tv_shows.rb +10 -0
  559. data/lib/User_Lib/screen/stb/iguide/iguide_video_store.rb +10 -0
  560. data/lib/User_Lib/screen/stb/login_stb.rb +5 -0
  561. data/lib/User_Lib/screen/stb/odn/odn_dvr.rb +59 -0
  562. data/lib/User_Lib/screen/stb/odn/odn_favorites.rb +8 -0
  563. data/lib/User_Lib/screen/stb/odn/odn_guide.rb +177 -0
  564. data/lib/User_Lib/screen/stb/odn/odn_live_tv.rb +115 -0
  565. data/lib/User_Lib/screen/stb/odn/odn_login.rb +8 -0
  566. data/lib/User_Lib/screen/stb/odn/odn_main_menu.rb +175 -0
  567. data/lib/User_Lib/screen/stb/odn/odn_on_demand.rb +1170 -0
  568. data/lib/User_Lib/screen/stb/odn/odn_on_demand_kids.rb +23 -0
  569. data/lib/User_Lib/screen/stb/odn/odn_on_demand_left_menu.rb +180 -0
  570. data/lib/User_Lib/screen/stb/odn/odn_parental_controls.rb +9 -0
  571. data/lib/User_Lib/screen/stb/odn/odn_product_page.rb +8 -0
  572. data/lib/User_Lib/screen/stb/odn/odn_screen.rb +111 -0
  573. data/lib/User_Lib/screen/stb/odn/odn_search.rb +167 -0
  574. data/lib/User_Lib/screen/stb/odn/odn_settings.rb +142 -0
  575. data/lib/User_Lib/screen/stb/spectrum/spectrum_diagnostics.rb +27 -0
  576. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/screen_spectrum_docsis.rb +12 -0
  577. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_guide.rb +10 -0
  578. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_main_menu.rb +10 -0
  579. data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_settings.rb +10 -0
  580. data/lib/User_Lib/screen/stb/spectrum/spectrum_dvr.rb +1781 -0
  581. data/lib/User_Lib/screen/stb/spectrum/spectrum_guide.rb +841 -0
  582. data/lib/User_Lib/screen/stb/spectrum/spectrum_library.rb +384 -0
  583. data/lib/User_Lib/screen/stb/spectrum/spectrum_live_tv.rb +259 -0
  584. data/lib/User_Lib/screen/stb/spectrum/spectrum_main_menu.rb +223 -0
  585. data/lib/User_Lib/screen/stb/spectrum/spectrum_mini_guide.rb +404 -0
  586. data/lib/User_Lib/screen/stb/spectrum/spectrum_movies.rb +420 -0
  587. data/lib/User_Lib/screen/stb/spectrum/spectrum_netflix.rb +37 -0
  588. data/lib/User_Lib/screen/stb/spectrum/spectrum_on_demand.rb +2137 -0
  589. data/lib/User_Lib/screen/stb/spectrum/spectrum_parental_controls.rb +528 -0
  590. data/lib/User_Lib/screen/stb/spectrum/spectrum_pay_per_view.rb +26 -0
  591. data/lib/User_Lib/screen/stb/spectrum/spectrum_product_page.rb +58 -0
  592. data/lib/User_Lib/screen/stb/spectrum/spectrum_screen.rb +48 -0
  593. data/lib/User_Lib/screen/stb/spectrum/spectrum_search.rb +92 -0
  594. data/lib/User_Lib/screen/stb/spectrum/spectrum_settings.rb +1657 -0
  595. data/lib/User_Lib/screen/stb/spectrum/spectrum_tv_shows.rb +1532 -0
  596. data/lib/User_Lib/screen/stb/spectrum/spectrum_video_store.rb +1598 -0
  597. data/lib/User_Lib/screen/stb/stb_screen.rb +7 -0
  598. data/lib/User_Lib/screen/tivo/tivo_dvr.rb +25 -0
  599. data/lib/User_Lib/screen/tivo/tivo_guide.rb +25 -0
  600. data/lib/User_Lib/screen/tivo/tivo_library.rb +25 -0
  601. data/lib/User_Lib/screen/tivo/tivo_live_tv.rb +17 -0
  602. data/lib/User_Lib/screen/tivo/tivo_login.rb +25 -0
  603. data/lib/User_Lib/screen/tivo/tivo_main_menu.rb +25 -0
  604. data/lib/User_Lib/screen/tivo/tivo_mini_guide.rb +25 -0
  605. data/lib/User_Lib/screen/tivo/tivo_movies.rb +25 -0
  606. data/lib/User_Lib/screen/tivo/tivo_on_demand.rb +25 -0
  607. data/lib/User_Lib/screen/tivo/tivo_parental_controls.rb +25 -0
  608. data/lib/User_Lib/screen/tivo/tivo_product_page.rb +25 -0
  609. data/lib/User_Lib/screen/tivo/tivo_screen.rb +20 -0
  610. data/lib/User_Lib/screen/tivo/tivo_search.rb +31 -0
  611. data/lib/User_Lib/screen/tivo/tivo_settings.rb +25 -0
  612. data/lib/User_Lib/screen/tivo/tivo_tv_shows.rb +25 -0
  613. data/lib/User_Lib/screen/tivo/tivo_video_store.rb +25 -0
  614. data/lib/config/ConfigParams.xml +96 -0
  615. data/lib/config/ImageROI.xml +45 -0
  616. data/lib/config/ROI.xml +150 -0
  617. data/lib/config/Userlog4j.xml +62 -0
  618. data/lib/config/schema-docs/mode.xsd +12 -0
  619. data/lib/config/schema-docs/processTestJobs.xsd +63 -0
  620. data/lib/config/schema-docs/rackip.xsd +24 -0
  621. data/lib/copy_ref_images.rb +199 -0
  622. data/lib/copy_repo.rb +136 -0
  623. data/lib/diagnostics/conductor/conductor_checkup.tmc +24 -0
  624. data/lib/diagnostics/db/mad_db_check.tmc +56 -0
  625. data/lib/diagnostics/db/mas_db_checkup.tmc +24 -0
  626. data/lib/diagnostics/db/mas_db_checkup_gem.tmc +20 -0
  627. data/lib/diagnostics/db/mas_db_checkup_jar.tmc +50 -0
  628. data/lib/diagnostics/iguide/iguide_nvram_reset.tmc +23 -0
  629. data/lib/diagnostics/iguide/iguide_prepare_stb.tmc +33 -0
  630. data/lib/diagnostics/iguide/iguide_prepare_stb_and_health_check.tmc +63 -0
  631. data/lib/diagnostics/iguide/iguide_stb_health_check.tmc +54 -0
  632. data/lib/diagnostics/prepare_stb.tmc +30 -0
  633. data/lib/diagnostics/prepare_stb_and_health_check.tmc +56 -0
  634. data/lib/diagnostics/script_options/options_checkup.tmc +145 -0
  635. data/lib/diagnostics/server_components_check.tmc +62 -0
  636. data/lib/diagnostics/ssh/dncs_checkup.tmc +24 -0
  637. data/lib/diagnostics/ssh/mas_checkup.tmc +24 -0
  638. data/lib/diagnostics/stb_health_check.tmc +46 -0
  639. data/lib/diagnostics/stb_ip_check.tmc +120 -0
  640. data/lib/diagnostics/webservices/mas_rest_services_checkup.tmc +24 -0
  641. data/lib/diagnostics/webservices/mas_soap_services_checkup.tmc +24 -0
  642. data/lib/dsllib/common/dncs/dncs_utils.rb +449 -0
  643. data/lib/dsllib/common/mas_db/mas_conductor.rb +1328 -0
  644. data/lib/dsllib/common/mas_db/mas_db.rb +154 -0
  645. data/lib/dsllib/common/mas_db/mas_publish.rb +2349 -0
  646. data/lib/dsllib/common/mas_db/mas_rest_services.rb +75 -0
  647. data/lib/dsllib/common/mas_db/mas_soap_services.rb +540 -0
  648. data/lib/dsllib/common/mas_db/mas_utils.rb +422 -0
  649. data/lib/dsllib/common/remote_diagnostics/mdn_remote_diagnostics.rb +1335 -0
  650. data/lib/dsllib/common/remote_diagnostics/odn_web_server.rb +269 -0
  651. data/lib/dsllib/common/utils/excel_export.rb +273 -0
  652. data/lib/dsllib/common/utils/excel_module.rb +890 -0
  653. data/lib/dsllib/common/utils/server_components_utils.rb +130 -0
  654. data/lib/dsllib/common/utils/stb_health_check_utils.rb +92 -0
  655. data/lib/dsllib/common/utils/sword_utils.rb +393 -0
  656. data/lib/dsllib/common/utils/tmc_utils.rb +2944 -0
  657. data/lib/dsllib/common/utils/virtual_keyboard_navigator.rb +208 -0
  658. data/lib/dsllib/common/utils/virtual_keyboard_vp_navigator.rb +195 -0
  659. data/lib/dsllib/performance/DTA/roi.rb +214 -0
  660. data/lib/dsllib/performance/DTA/utils.rb +96 -0
  661. data/lib/dsllib/performance/iguide_concurrent_test/ROI.rb +236 -0
  662. data/lib/dsllib/performance/iguide_concurrent_test/utils.rb +533 -0
  663. data/lib/dsllib/performance/measure_tune.rb +438 -0
  664. data/lib/dsllib/performance/perf_lib.rb +660 -0
  665. data/lib/end_iteration.rb +4 -0
  666. data/lib/lib/data_services/channel.rb +39 -0
  667. data/lib/lib/data_services/data_services.rb +14 -0
  668. data/lib/lib/data_services/guide.rb +104 -0
  669. data/lib/lib/data_services/lineup.rb +114 -0
  670. data/lib/lib/data_services/program.rb +48 -0
  671. data/lib/lib/data_services/schedule.rb +18 -0
  672. data/lib/lib/data_services/splunk_connector.rb +135 -0
  673. data/lib/lib/data_services/splunk_data_reader.rb +77 -0
  674. data/lib/lib/element/element.rb +79 -0
  675. data/lib/lib/extensions/array_extensions.rb +32 -0
  676. data/lib/lib/extensions/datetime_extensions.rb +8 -0
  677. data/lib/lib/extensions/extensions.rb +51 -0
  678. data/lib/lib/extensions/file_extensions.rb +32 -0
  679. data/lib/lib/extensions/float_extensions.rb +32 -0
  680. data/lib/lib/extensions/integer_extensions.rb +39 -0
  681. data/lib/lib/extensions/nethttp_extensions.rb +11 -0
  682. data/lib/lib/extensions/object_extensions.rb +7 -0
  683. data/lib/lib/extensions/string_extensions.rb +35 -0
  684. data/lib/lib/helpers/tmc_helpers/csv_helper/csv_helper.rb +85 -0
  685. data/lib/lib/helpers/tmc_helpers/email_helper/email_helper.rb +71 -0
  686. data/lib/lib/helpers/tmc_helpers/http_helper/http_helper.rb +133 -0
  687. data/lib/lib/helpers/tmc_helpers/roi_helper/roi_helper.rb +17 -0
  688. data/lib/lib/helpers/tmc_helpers/snmp_helper/snmp_helper.rb +71 -0
  689. data/lib/lib/helpers/tmc_helpers/ssh_helper/ssh_helper.rb +337 -0
  690. data/lib/lib/helpers/tmc_helpers/tmc_helpers.rb +1260 -0
  691. data/lib/lib/keyboard/apple_tv/apple_tv_password_keyboard.rb +102 -0
  692. data/lib/lib/keyboard/apple_tv/apple_tv_search_keyboard.rb +103 -0
  693. data/lib/lib/keyboard/apple_tv/apple_tv_username_keyboard.rb +105 -0
  694. data/lib/lib/keyboard/keyboard.rb +504 -0
  695. data/lib/lib/keyboard/keyboard_layout.rb +51 -0
  696. data/lib/lib/keyboard/roku/roku_reset_pin_keyboard.rb +12 -0
  697. data/lib/lib/keyboard/roku/roku_rsg_search_keyboard.rb +67 -0
  698. data/lib/lib/keyboard/roku/roku_rsg_signin_keyboard.rb +106 -0
  699. data/lib/lib/keyboard/roku/roku_search_keyboard.rb +10 -0
  700. data/lib/lib/keyboard/roku/roku_signin_keyboard.rb +42 -0
  701. data/lib/lib/keyboard/samsung_tv/samsung_tv_search_keyboard.rb +50 -0
  702. data/lib/lib/keyboard/samsung_tv/samsung_tv_signin_keyboard.rb +52 -0
  703. data/lib/lib/keyboard/stb/odn/odn_on_demand_search_keyboard.rb +10 -0
  704. data/lib/lib/keyboard/stb/odn/odn_search_keyboard.rb +10 -0
  705. data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_email_keyboard.rb +50 -0
  706. data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_keyboard.rb +43 -0
  707. data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_name_keyboard.rb +16 -0
  708. data/lib/lib/keyboard/stb/spectrum/spectrum_search_keyboard.rb +32 -0
  709. data/lib/lib/keyboard/tivo/tivo_password_keyboard.rb +0 -0
  710. data/lib/lib/keyboard/tivo/tivo_search_keyboard.rb +0 -0
  711. data/lib/lib/keyboard/tivo/tivo_username_keyboard.rb +0 -0
  712. data/lib/lib/keys/apple_tv/apple_tv_keys.rb +26 -0
  713. data/lib/lib/keys/base_keys.rb +14 -0
  714. data/lib/lib/keys/dta/dta_keys.rb +60 -0
  715. data/lib/lib/keys/mdn/mdn_keys.rb +60 -0
  716. data/lib/lib/keys/passport/passport_keys.rb +59 -0
  717. data/lib/lib/keys/roku/roku_keys.rb +31 -0
  718. data/lib/lib/keys/roku_tv/roku_tv_keys.rb +32 -0
  719. data/lib/lib/keys/samsung_tv/samsung_tv_keys.rb +58 -0
  720. data/lib/lib/keys/sara/sara_keys.rb +60 -0
  721. data/lib/lib/keys/stb/iguide/iguide_keys.rb +56 -0
  722. data/lib/lib/keys/stb/odn/odn_keys.rb +63 -0
  723. data/lib/lib/keys/stb/spectrum/spectrum_keys.rb +59 -0
  724. data/lib/lib/keys/stb/stb_keys.rb +13 -0
  725. data/lib/lib/keys/tivo/tivo_keys.rb +26 -0
  726. data/lib/lib/logger/multi_io.rb +14 -0
  727. data/lib/lib/logger/tmc_dut_logger.rb +251 -0
  728. data/lib/lib/logger/tmc_logger.rb +30 -0
  729. data/lib/lib/mixins/assignable.rb +19 -0
  730. data/lib/lib/mixins/can_have_special_methods.rb +50 -0
  731. data/lib/lib/mixins/enumish.rb +16 -0
  732. data/lib/lib/new_platform.rb +302 -0
  733. data/lib/lib/new_sub_platform.rb +90 -0
  734. data/lib/lib/platform/apple_tv/apple_tv.rb +33 -0
  735. data/lib/lib/platform/apple_tv/apple_tv_1080/apple_tv_1080.rb +54 -0
  736. data/lib/lib/platform/apple_tv/apple_tv_720/apple_tv_720.rb +14 -0
  737. data/lib/lib/platform/dta/dta.rb +35 -0
  738. data/lib/lib/platform/dta/dta_1080/dta_1080.rb +15 -0
  739. data/lib/lib/platform/dta/dta_720/dta_720.rb +15 -0
  740. data/lib/lib/platform/mdn/mdn.rb +35 -0
  741. data/lib/lib/platform/mdn/mdn_1080/mdn_1080.rb +15 -0
  742. data/lib/lib/platform/mdn/mdn_720/mdn_720.rb +15 -0
  743. data/lib/lib/platform/mobile/android/android.rb +23 -0
  744. data/lib/lib/platform/mobile/android/android_phone/android_phone.rb +23 -0
  745. data/lib/lib/platform/mobile/android/android_tablet/android_tablet.rb +23 -0
  746. data/lib/lib/platform/mobile/ios/ios.rb +23 -0
  747. data/lib/lib/platform/mobile/ios/ios_phone/ios_phone.rb +23 -0
  748. data/lib/lib/platform/mobile/ios/ios_tablet/ios_tablet.rb +23 -0
  749. data/lib/lib/platform/mobile/mobile.rb +102 -0
  750. data/lib/lib/platform/passport/passport.rb +41 -0
  751. data/lib/lib/platform/passport/passport1080/passport_1080.rb +15 -0
  752. data/lib/lib/platform/passport/passport_720/passport_720.rb +14 -0
  753. data/lib/lib/platform/platform.rb +884 -0
  754. data/lib/lib/platform/roku/roku.rb +96 -0
  755. data/lib/lib/platform/roku/roku_720/roku_720.rb +16 -0
  756. data/lib/lib/platform/roku_tv/roku_tv.rb +33 -0
  757. data/lib/lib/platform/roku_tv/roku_tv_1080/roku_tv_1080.rb +14 -0
  758. data/lib/lib/platform/roku_tv/roku_tv_720/roku_tv_720.rb +14 -0
  759. data/lib/lib/platform/samsung_tv/samsung_tv.rb +31 -0
  760. data/lib/lib/platform/samsung_tv/samsung_tv_1080/samsung_tv_1080.rb +14 -0
  761. data/lib/lib/platform/samsung_tv/samsung_tv_720/samsung_tv_720.rb +14 -0
  762. data/lib/lib/platform/sara/sara.rb +42 -0
  763. data/lib/lib/platform/sara/sara_1080/sara_1080.rb +15 -0
  764. data/lib/lib/platform/sara/sara_720/sara_720.rb +15 -0
  765. data/lib/lib/platform/stb/iguide/iguide.rb +18 -0
  766. data/lib/lib/platform/stb/iguide/iguide_1080/iguide_1080.rb +14 -0
  767. data/lib/lib/platform/stb/iguide/iguide_720/iguide_720.rb +14 -0
  768. data/lib/lib/platform/stb/odn/odn.rb +480 -0
  769. data/lib/lib/platform/stb/odn/odn_1080/odn_1080.rb +14 -0
  770. data/lib/lib/platform/stb/odn/odn_720/odn_720.rb +14 -0
  771. data/lib/lib/platform/stb/odn/odn_720/odn_720_moto/odn_720_moto.rb +14 -0
  772. data/lib/lib/platform/stb/odn/odn_720/odn_720_sa/odn_720_sa.rb +14 -0
  773. data/lib/lib/platform/stb/odn/odn_720/odn_720_samsung/odn_720_samsung.rb +14 -0
  774. data/lib/lib/platform/stb/spectrum/spectrum.rb +48 -0
  775. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080.rb +14 -0
  776. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis.rb +16 -0
  777. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris.rb +15 -0
  778. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax.rb +15 -0
  779. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch.rb +15 -0
  780. data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace.rb +14 -0
  781. data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720.rb +14 -0
  782. data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris.rb +15 -0
  783. data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax.rb +15 -0
  784. data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch.rb +15 -0
  785. data/lib/lib/platform/stb/stb.rb +93 -0
  786. data/lib/lib/platform/template.txt +16 -0
  787. data/lib/lib/platform/tivo/tivo.rb +28 -0
  788. data/lib/lib/platform/tivo/tivo_1080/tivo_1080.rb +15 -0
  789. data/lib/lib/platform/tivo/tivo_720/tivo_720.rb +14 -0
  790. data/lib/lib/platform/web/web.rb +51 -0
  791. data/lib/lib/platform_libs/roku/roku_controller.rb +254 -0
  792. data/lib/lib/prereqs/prereqs.rb +17 -0
  793. data/lib/lib/prereqs/prereqs_for_dut.rb +14 -0
  794. data/lib/lib/prereqs/prereqs_for_test.rb +14 -0
  795. data/lib/lib/remotes/remotes.rb +8 -0
  796. data/lib/lib/remotes/stb/spectrum/spectrum_remotes.rb +22 -0
  797. data/lib/lib/roi/black/black_roi.rb +125 -0
  798. data/lib/lib/roi/color/color_roi.rb +138 -0
  799. data/lib/lib/roi/image/image_roi.rb +187 -0
  800. data/lib/lib/roi/roi.rb +1064 -0
  801. data/lib/lib/roi/template_roi.txt +9 -0
  802. data/lib/lib/roi/text/text_roi.rb +187 -0
  803. data/lib/lib/roi/video/video_roi.rb +98 -0
  804. data/lib/lib/screen/screen.rb +183 -0
  805. data/lib/lib/screen/template.txt +7 -0
  806. data/lib/lib/screen/template_screen.txt +10 -0
  807. data/lib/lib/screens/apple_tv/apple_tv_screens.rb +44 -0
  808. data/lib/lib/screens/dta/dta_screens.rb +49 -0
  809. data/lib/lib/screens/mdn/mdn_screens.rb +49 -0
  810. data/lib/lib/screens/mobile/android/android_phone/android_phone_screens.rb +28 -0
  811. data/lib/lib/screens/mobile/android/android_screens.rb +40 -0
  812. data/lib/lib/screens/mobile/android/android_tablet/android_tablet_screens.rb +29 -0
  813. data/lib/lib/screens/mobile/ios/ios_phone/ios_phone_screens.rb +22 -0
  814. data/lib/lib/screens/mobile/ios/ios_screens.rb +39 -0
  815. data/lib/lib/screens/mobile/ios/ios_tablet/ios_tablet_screens.rb +20 -0
  816. data/lib/lib/screens/mobile/mobile_screens.rb +18 -0
  817. data/lib/lib/screens/passport/passport_screens.rb +42 -0
  818. data/lib/lib/screens/roku/roku_screens.rb +72 -0
  819. data/lib/lib/screens/roku_tv/roku_tv_screens.rb +43 -0
  820. data/lib/lib/screens/samsung_tv/samsung_tv_screens.rb +44 -0
  821. data/lib/lib/screens/sara/sara_screens.rb +49 -0
  822. data/lib/lib/screens/screens.rb +23 -0
  823. data/lib/lib/screens/stb/iguide/iguide_1080/iguide_1080_screens.rb +56 -0
  824. data/lib/lib/screens/stb/iguide/iguide_720/iguide_720_screens.rb +56 -0
  825. data/lib/lib/screens/stb/iguide/iguide_screens.rb +54 -0
  826. data/lib/lib/screens/stb/odn/odn_screens.rb +40 -0
  827. data/lib/lib/screens/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_screens.rb +18 -0
  828. data/lib/lib/screens/stb/spectrum/spectrum_screens.rb +48 -0
  829. data/lib/lib/screens/stb/stb_screens.rb +13 -0
  830. data/lib/lib/screens/template.txt +52 -0
  831. data/lib/lib/screens/tivo/tivo_screens.rb +44 -0
  832. data/lib/lib/selenium/appium/appium.rb +388 -0
  833. data/lib/lib/selenium/selenium.rb +466 -0
  834. data/lib/lib/selenium/webdriver/webdriver.rb +254 -0
  835. data/lib/lib/test_case/boilerplate/functional.rb +7 -0
  836. data/lib/lib/test_case/boilerplate/performance.rb +7 -0
  837. data/lib/lib/test_case/ci_test.rb +47 -0
  838. data/lib/lib/test_case/functional_test_case.rb +27 -0
  839. data/lib/lib/test_case/make_boilerplate.rb +32 -0
  840. data/lib/lib/test_case/monitoring/apple_monitor.rb +104 -0
  841. data/lib/lib/test_case/monitoring/base_monitor.rb +140 -0
  842. data/lib/lib/test_case/monitoring/dta_monitor.rb +53 -0
  843. data/lib/lib/test_case/monitoring/iguide_monitor.rb +72 -0
  844. data/lib/lib/test_case/monitoring/mdn_monitor.rb +28 -0
  845. data/lib/lib/test_case/monitoring/monitoring_test.rb +111 -0
  846. data/lib/lib/test_case/monitoring/odn_monitor.rb +137 -0
  847. data/lib/lib/test_case/monitoring/passport_monitor.rb +50 -0
  848. data/lib/lib/test_case/monitoring/report_monitor.rb +178 -0
  849. data/lib/lib/test_case/monitoring/roku_monitor.rb +102 -0
  850. data/lib/lib/test_case/monitoring/sara_monitor.rb +33 -0
  851. data/lib/lib/test_case/monitoring/spec_monitor.rb +154 -0
  852. data/lib/lib/test_case/performance_test_case.rb +29 -0
  853. data/lib/lib/test_case/test_case.rb +1055 -0
  854. data/lib/lib/test_case/test_error.rb +29 -0
  855. data/lib/lib/test_case/test_exception.rb +9 -0
  856. data/lib/lib/test_case/test_status.rb +39 -0
  857. data/lib/lib/test_case/test_step.rb +156 -0
  858. data/lib/lib/test_case/test_trace.rb +80 -0
  859. data/lib/lib/test_data.rb +222 -0
  860. data/lib/lib/test_wrapper.rb +146 -0
  861. data/lib/misc/get_latest_android.sh +14 -0
  862. data/lib/misc/get_latest_ios.sh +14 -0
  863. data/lib/package-lock.json +3 -0
  864. data/lib/run_test.rb +4 -0
  865. data/lib/script_validator.rb +48 -0
  866. data/lib/syntax_eval.rb +151 -0
  867. data/lib/tools/convert_old_scripts.rb +100 -0
  868. data/lib/tools/find_duplicate_rois.rb +27 -0
  869. data/lib/tools/roku/inspector.rb +130 -0
  870. data/lib/tools/syntax_checker.rb +83 -0
  871. data/lib/upload_ref_images.rb +255 -0
  872. metadata +912 -0
@@ -0,0 +1,45 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <screens>
3
+ <screen name="favorites-added-26-90" image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\compareImages\favoriteChannels.jpg">
4
+ <nav-key keys="KEY_2,100;KEY_6,100" />
5
+ <nav-key keys="KEY_EXIT,1000;KEY_SETTINGS,1000;KEY_RIGHT_ARROW,1000;KEY_RIGHT_ARROW,1000;KEY_SELECT,1000;KEY_SELECT,1000" />
6
+ <nav-key keys="KEY_GUIDE,3000" />
7
+ <zone name="star LOGO" X="170" Y="55" width="46" height="50" threshold="90" referenceImage="c:\imageCapture\refImages\star_1.jpg" />
8
+ </screen>
9
+ <screen name="favorites-added-26-80" image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\compareImages\favoriteChannels.jpg">
10
+ <nav-key keys="KEY_2,100;KEY_6,100" />
11
+ <nav-key keys="KEY_EXIT,1000;KEY_SETTINGS,1000;KEY_RIGHT_ARROW,1000;KEY_RIGHT_ARROW,1000;KEY_SELECT,1000;KEY_SELECT,1000" />
12
+ <nav-key keys="KEY_GUIDE,3000" />
13
+ <zone name="star LOGO" X="270" Y="55" width="46" height="50" threshold="80" referenceImage="c:\imageCapture\refImages\savereturn.jpg" />
14
+ </screen>
15
+ <screen name="favorites-added-26-70" image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\compareImages\favoriteChannels.jpg">
16
+ <nav-key keys="KEY_2,100;KEY_6,100" />
17
+ <nav-key keys="KEY_EXIT,1000;KEY_SETTINGS,1000;KEY_RIGHT_ARROW,1000;KEY_RIGHT_ARROW,1000;KEY_SELECT,1000;KEY_SELECT,1000" />
18
+ <nav-key keys="KEY_GUIDE,3000" />
19
+ <zone name="star LOGO" X="170" Y="55" width="46" height="50" threshold="70" referenceImage="c:\imageCapture\refImages\star_1.jpg" />
20
+ </screen>
21
+ <screen name="favorites-added-26-60" image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\compareImages\favoriteChannels.jpg">
22
+ <nav-key keys="KEY_2,100;KEY_6,100" />
23
+ <nav-key keys="KEY_EXIT,1000;KEY_SETTINGS,1000;KEY_RIGHT_ARROW,1000;KEY_RIGHT_ARROW,1000;KEY_SELECT,1000;KEY_SELECT,1000" />
24
+ <nav-key keys="KEY_GUIDE,3000" />
25
+ <zone name="star LOGO" X="170" Y="55" width="46" height="50" threshold="60" referenceImage="c:\imageCapture\refImages\star_1.jpg" />
26
+ </screen>
27
+ <screen name="favorites-added-26-50" image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\compareImages\favoriteChannels.jpg">
28
+ <nav-key keys="KEY_2,100;KEY_6,100" />
29
+ <nav-key keys="KEY_EXIT,1000;KEY_SETTINGS,1000;KEY_RIGHT_ARROW,1000;KEY_RIGHT_ARROW,1000;KEY_SELECT,1000;KEY_SELECT,1000" />
30
+ <nav-key keys="KEY_GUIDE,3000" />
31
+ <zone name="star LOGO" X="170" Y="55" width="46" height="50" threshold="50" referenceImage="c:\imageCapture\refImages\star_1.jpg" />
32
+ </screen>
33
+ <screen name="favorites-added-26-40" image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\compareImages\favoriteChannels.jpg">
34
+ <nav-key keys="KEY_2,100;KEY_6,100" />
35
+ <nav-key keys="KEY_EXIT,1000;KEY_SETTINGS,1000;KEY_RIGHT_ARROW,1000;KEY_RIGHT_ARROW,1000;KEY_SELECT,1000;KEY_SELECT,1000" />
36
+ <nav-key keys="KEY_GUIDE,3000" />
37
+ <zone name="star LOGO" X="170" Y="55" width="46" height="50" threshold="40" referenceImage="c:\imageCapture\refImages\star_1.jpg" />
38
+ </screen>
39
+ <screen name="favorites-added-26-0" image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\compareImages\favoriteChannels.jpg">
40
+ <nav-key keys="KEY_2,100;KEY_6,100" />
41
+ <nav-key keys="KEY_EXIT,1000;KEY_SETTINGS,1000;KEY_RIGHT_ARROW,1000;KEY_RIGHT_ARROW,1000;KEY_SELECT,1000;KEY_SELECT,1000" />
42
+ <nav-key keys="KEY_GUIDE,3000" />
43
+ <zone name="star LOGO" X="170" Y="55" width="46" height="50" threshold="0" referenceImage="c:\imageCapture\refImages\star_1.jpg" />
44
+ </screen>
45
+ </screens>
@@ -0,0 +1,150 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Screens>
3
+ <Screen Name="tuningError.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\tuningError.jpg">
4
+ <Zone Name="channelNotFound" X="161" Y="406" Width="44" Height="24" PreProcess="1" Text="????"/>
5
+ <Zone Name="time" X="38" Y="347" Width="96" Height="26" PreProcess="0" Text="11:25 am" />
6
+ </Screen>
7
+ <Screen Name="timeBlockSettingsPage.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\timeBlockSettingsPage.jpg">
8
+ <Zone Name="day" X="86" Y="308" Width="72" Height="28" PreProcess="0" Text="TUE 1/5" />
9
+ <Zone Name="day1" X="86" Y="308" Width="72" Height="28" PreProcess="1" Text="TUE 1/5" />
10
+ <Zone Name="day2" X="86" Y="308" Width="72" Height="28" PreProcess="2" Text="TUE 1/5" />
11
+ <Zone Name="day3" X="86" Y="308" Width="72" Height="28" PreProcess="3" Text="TUE 1/5" />
12
+ <Zone Name="day4" X="86" Y="308" Width="72" Height="28" PreProcess="4" Text="TUE 1/5" />
13
+ <Zone Name="day5" X="86" Y="308" Width="72" Height="28" PreProcess="5" Text="TUE 1/5" />
14
+ <Zone Name="day6" X="86" Y="308" Width="72" Height="28" PreProcess="6" Text="TUE 1/5" />
15
+ <Zone Name="fromHour" X="207" Y="310" Width="30" Height="24" PreProcess="2" Text="9" />
16
+ <Zone Name="fromMinute1" X="248" Y="310" Width="20" Height="24" PreProcess="6" Text="5" />
17
+ <Zone Name="fromMinute2" X="268" Y="311" Width="18" Height="24" PreProcess="2" Text="9" />
18
+ <Zone Name="fromampm" X="286" Y="310" Width="32" Height="24" PreProcess="2" Text="am" />
19
+ <Zone Name="toHour" X="323" Y="309" Width="29" Height="24" PreProcess="2" Text="10" />
20
+ <Zone Name="toMinute1" X="358" Y="311" Width="22" Height="24" PreProcess="2" Text="2" />
21
+ <Zone Name="toMinute2" X="378" Y="309" Width="22" Height="24" PreProcess="2" Text="9" />
22
+ <Zone Name="toampm" X="401" Y="311" Width="34" Height="24" PreProcess="2" Text="am" />
23
+ <Zone Name="subBanner" X="115" Y="57" Width="182" Height="25" PreProcess="0" Text="PARENTAL CONTROL" />
24
+ <Zone Name="banner" X="88" Y="25" Width="163" Height="34" PreProcess="0" Text="SETTINGS" />
25
+ <Zone Name="channelName" X="319" Y="191" Width="48" Height="20" PreProcess="6" Text="MOD" />
26
+ <Zone Name="channelNumber" X="380" Y="191" Width="41" Height="21" PreProcess="6" Text="801" />
27
+ <Zone Name="time" X="509" Y="192" Width="89" Height="25" PreProcess="2" Text="10:00 am" />
28
+ </Screen>
29
+ <Screen Name="showList.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\showList.jpg">
30
+ <Zone Name="banner" X="89" Y="44" Width="213" Height="34" PreProcess="0" Text="SHOW LIST" />
31
+ <Zone Name="highlightedList" X="68" Y="227" Width="228" Height="36" PreProcess="0" Text="None" />
32
+ <Zone Name="tabName" X="94" Y="410" Width="91" Height="26" PreProcess="0" Text="BY DATE" />
33
+ <Zone Name="time" X="509" Y="192" Width="89" Height="25" PreProcess="0" Text="11:12 am" />
34
+ <Zone Name="availableCapacity" X="320" Y="191" Width="96" Height="20" PreProcess="6" Text="0% Full" />
35
+ </Screen>
36
+ <Screen Name="purchasedTabOnMOD.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\purchasedTabOnMOD.jpg">
37
+ <Zone Name="tabName" X="83" Y="411" Width="129" Height="23" PreProcess="0" Text="IN-PROGRESS" />
38
+ </Screen>
39
+ <Screen Name="parentalControlSwitchedOFF.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\parentalControlSwitchedOFF.jpg">
40
+ <Zone Name="channelName" X="322" Y="190" Width="71" Height="22" PreProcess="6" Text="Region1" />
41
+ <Zone Name="time" X="509" Y="192" Width="89" Height="25" PreProcess="2" Text="1:51 pm" />
42
+ </Screen>
43
+ <Screen Name="parentalControlStatusOFF.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\parentalControlStatusOFF.jpg">
44
+ <Zone Name="highlightedList" X="66" Y="227" Width="228" Height="36" PreProcess="0" Text="TURN ON/OFF" />
45
+ <Zone Name="status" X="321" Y="228" Width="122" Height="28" PreProcess="2" Text="STATUS: OFF" />
46
+ <Zone Name="tabName" X="78" Y="410" Width="170" Height="26" PreProcess="0" Text="PARENTAL CONTROL" />
47
+ <Zone Name="channelName" X="319" Y="191" Width="55" Height="20" PreProcess="6" Text="WBTV" />
48
+ <Zone Name="time" X="509" Y="192" Width="89" Height="25" PreProcess="2" Text="12:28 pm" />
49
+ <Zone Name="banner" X="89" Y="44" Width="213" Height="34" PreProcess="0" Text="SETTINGS" />
50
+ </Screen>
51
+ <Screen Name="MOD.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\MOD.jpg">
52
+ <Zone Name="banner" X="36" Y="51" Width="119" Height="25" PreProcess="2" Text="On Demand" />
53
+ <Zone Name="highlightedList" X="66" Y="227" Width="228" Height="36" PreProcess="2" Text="2012 Science/Super." />
54
+ <Zone Name="rating" X="325" Y="266" Width="45" Height="17" PreProcess="0" Text="TV-MA" />
55
+ </Screen>
56
+ <Screen Name="infoOnMOD.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\infoOnMOD.jpg">
57
+ <Zone Name="channelName" X="118" Y="379" Width="85" Height="25" PreProcess="0" Text="MOD" />
58
+ <Zone Name="channelNumber" X="118" Y="405" Width="85" Height="25" PreProcess="0" Text="801" />
59
+ <Zone Name="info" X="212" Y="348" Width="91" Height="24" PreProcess="0" Text="View until" />
60
+ <Zone Name="startTime" X="214" Y="403" Width="63" Height="25" PreProcess="2" Text="0:00" />
61
+ <Zone Name="endTime" X="479" Y="403" Width="63" Height="25" PreProcess="2" Text="1:47" />
62
+ </Screen>
63
+ <Screen Name="infoOnChannel1.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\infoOnChannel1.jpg">
64
+ <Zone Name="startTime" X="214" Y="403" Width="63" Height="25" PreProcess="2" Text="12:00" />
65
+ <Zone Name="endTime" X="479" Y="403" Width="63" Height="25" PreProcess="2" Text="5:47" />
66
+ <Zone Name="channelName" X="118" Y="379" Width="85" Height="25" PreProcess="0" Text="Region1" />
67
+ <Zone Name="channelNumber" X="118" Y="405" Width="85" Height="25" PreProcess="0" Text="1" />
68
+ </Screen>
69
+ <Screen Name="findShows.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\findShows.jpg">
70
+ <Zone Name="banner" X="89" Y="44" Width="213" Height="34" PreProcess="0" Text="FIND SHOWS" />
71
+ <Zone Name="highlightedList" X="66" Y="227" Width="228" Height="36" PreProcess="0" Text="Price Is Right, The" />
72
+ </Screen>
73
+ <Screen Name="favoritesMenuStatusOFF.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\favoritesMenuStatusOFF.jpg">
74
+ <Zone Name="highlightedList" X="66" Y="227" Width="228" Height="36" PreProcess="0" Text="Favorites Menu" />
75
+ <Zone Name="status" X="321" Y="228" Width="122" Height="28" PreProcess="2" Text="STATUS: OFF" />
76
+ <Zone Name="channelName" X="322" Y="190" Width="71" Height="22" PreProcess="6" Text="Region1" />
77
+ <Zone Name="time" X="509" Y="192" Width="89" Height="25" PreProcess="2" Text="11:55 am" />
78
+ <Zone Name="tabName" X="79" Y="411" Width="177" Height="24" PreProcess="0" Text="FAVORITE CHANNELS" />
79
+ </Screen>
80
+ <Screen Name="favoritesMenu.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\favoritesMenu.jpg">
81
+ <Zone Name="banner" X="34" Y="39" Width="109" Height="30" PreProcess="0" Text="FAVORITES" />
82
+ <Zone Name="favorite1" X="41" Y="113" Width="57" Height="24" PreProcess="6" Text="1" />
83
+ <Zone Name="favorite2" X="40" Y="146" Width="57" Height="24" PreProcess="6" Text="101" />
84
+ <Zone Name="favorite3" X="40" Y="177" Width="57" Height="24" PreProcess="2" Text="301" />
85
+ <Zone Name="favorite4" X="40" Y="209" Width="57" Height="24" PreProcess="2" Text="801" />
86
+ <Zone Name="favorite5" X="42" Y="241" Width="57" Height="24" PreProcess="2" Text="1001" />
87
+ </Screen>
88
+ <Screen Name="favoriteOnGuide1.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\favoriteOnGuide1.jpg">
89
+ <Zone Name="channelNumber" X="130" Y="313" Width="52" Height="26" PreProcess="0" Text="1" />
90
+ <Zone Name="channelName1" X="50" Y="313" Width="72" Height="26" PreProcess="0" Text="Region1" />
91
+ <Zone Name="channelName2" X="130" Y="29" Width="148" Height="29" PreProcess="0" Text="Region1" />
92
+ <Zone Name="rating" X="54" Y="111" Width="29" Height="18" PreProcess="0" Text="NR" />
93
+ <Zone Name="duration" X="89" Y="108" Width="179" Height="24" PreProcess="0" Text="12:00 - 12:00 am" />
94
+ <Zone Name="day" X="49" Y="225" Width="50" Height="23" PreProcess="2" Text="MON" />
95
+ <Zone Name="time" X="198" Y="226" Width="94" Height="24" PreProcess="2" Text="11:00 am" />
96
+ </Screen>
97
+ <Screen Name="favoriteChannels.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\favoriteChannels.jpg">
98
+ <Zone Name="subBanner" X="115" Y="57" Width="182" Height="25" PreProcess="0" Text="FAVORITE CHANNELS" />
99
+ <Zone Name="banner" X="88" Y="25" Width="163" Height="34" PreProcess="0" Text="SETTINGS" />
100
+ <Zone Name="channelName" X="302" Y="312" Width="97" Height="23" PreProcess="0" Text="HBO" />
101
+ <Zone Name="channelNumber" X="254" Y="312" Width="47" Height="23" PreProcess="0" Text="301" />
102
+ </Screen>
103
+ <Screen Name="enterPINOnMOD.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\enterPINOnMOD.jpg">
104
+ <Zone Name="subTitle" X="126" Y="237" Width="390" Height="25" PreProcess="0" Text="Enter Purchase PIN" />
105
+ </Screen>
106
+ <Screen Name="deleteOnTimeBlockOptions.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\deleteOnTimeBlockOptions.jpg">
107
+ <Zone Name="highlightedList" X="258" Y="309" Width="297" Height="23" PreProcess="0" Text="Delete" />
108
+ <Zone Name="subBanner" X="115" Y="57" Width="182" Height="25" PreProcess="0" Text="PARENTAL CONTROL" />
109
+ <Zone Name="banner" X="88" Y="25" Width="163" Height="34" PreProcess="0" Text="SETTINGS" />
110
+ </Screen>
111
+ <Screen Name="dataNotAvailableOnGuide.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\dataNotAvailableOnGuide.jpg">
112
+ <Zone Name="highlightedList" X="197" Y="315" Width="427" Height="23" PreProcess="6" Text="Data not available" />
113
+ <Zone Name="rating" X="53" Y="110" Width="45" Height="17" PreProcess="0" Text="PG-13" />
114
+ <Zone Name="duration" X="100" Y="108" Width="168" Height="23" PreProcess="0" Text="6:30 - 8:00 pm" />
115
+ </Screen>
116
+ <Screen Name="cancelPurchaseOnMOD.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\cancelPurchaseOnMOD.jpg">
117
+ <Zone Name="subTitle" X="236" Y="235" Width="153" Height="30" PreProcess="0" Text="Program Stopped" />
118
+ <Zone Name="highlightedList" X="241" Y="312" Width="153" Height="26" PreProcess="0" Text="Cancel Purchase" />
119
+ </Screen>
120
+ <Screen Name="blockingPinLocked.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\blockingPinLocked.jpg">
121
+ <Zone Name="subTitle" X="217" Y="235" Width="197" Height="29" PreProcess="0" Text="Blocking PIN is Locked" />
122
+ <Zone Name="highlightedList" X="282" Y="385" Width="69" Height="24" PreProcess="0" Text="Cancel" />
123
+ <Zone Name="insideText" X="258" Y="327" Width="116" Height="25" PreProcess="2" Text="180 minutes" />
124
+ </Screen>
125
+ <Screen Name="alreadyPurchasedOnMOD.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\alreadyPurchasedOnMOD.jpg">
126
+ <Zone Name="highlightedList" X="219" Y="357" Width="122" Height="25" PreProcess="0" Text="Resume Play" />
127
+ </Screen>
128
+ <Screen Name="accessMenuOnMOD.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\accessMenuOnMOD.jpg">
129
+ <Zone Name="highlightedList" X="66" Y="227" Width="228" Height="36" PreProcess="0" Text="Caller ID" />
130
+ <Zone Name="banner" X="108" Y="44" Width="185" Height="38" PreProcess="0" Text="ACCESS MENU" />
131
+ <Zone Name="tabName" X="101" Y="413" Width="60" Height="19" PreProcess="0" Text="HOME" />
132
+ <Zone Name="channelName" X="319" Y="191" Width="54" Height="22" PreProcess="2" Text="MOD" />
133
+ <Zone Name="channelNumber" X="388" Y="191" Width="54" Height="22" PreProcess="2" Text="801" />
134
+ <Zone Name="time" X="508" Y="192" Width="90" Height="22" PreProcess="0" Text="12:33 pm" />
135
+ </Screen>
136
+ <Screen Name="accessMenu.jpg" Image="\\Cifs.atge.twcable.com\cifstesters\TMC Dev\LeadTools\NewZones\OCR Images\accessMenu.jpg">
137
+ <Zone Name="banner" X="108" Y="44" Width="185" Height="38" PreProcess="0" Text="ACCESS MENU" />
138
+ <Zone Name="highlightedList" X="66" Y="227" Width="228" Height="36" PreProcess="0" Text="Caller ID" />
139
+ <Zone Name="channelName" X="320" Y="188" Width="49" Height="28" PreProcess="0" Text="HBO" />
140
+ <Zone Name="channelName1" X="320" Y="188" Width="49" Height="28" PreProcess="1" Text="HBO" />
141
+ <Zone Name="channelName2" X="320" Y="188" Width="49" Height="28" PreProcess="2" Text="HBO" />
142
+ <Zone Name="channelName3" X="320" Y="188" Width="49" Height="28" PreProcess="3" Text="HBO" />
143
+ <Zone Name="channelName4" X="320" Y="188" Width="49" Height="28" PreProcess="4" Text="HBO" />
144
+ <Zone Name="channelName5" X="320" Y="188" Width="49" Height="28" PreProcess="5" Text="HBO" />
145
+ <Zone Name="channelName6" X="320" Y="188" Width="49" Height="28" PreProcess="6" Text="HBO" />
146
+ <Zone Name="channelNumber" X="383" Y="191" Width="49" Height="22" PreProcess="2" Text="301" />
147
+ <Zone Name="time" X="508" Y="192" Width="90" Height="22" PreProcess="0" Text="11:11 am" />
148
+ <Zone Name="tabName" X="101" Y="413" Width="60" Height="19" PreProcess="0" Text="HOME" />
149
+ </Screen>
150
+ </Screens>
@@ -0,0 +1,62 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration>
2
+
3
+ <log4j:configuration threshold="all" debug="false" xmlns:log4j="urn:tmcexecutionservice">
4
+
5
+ <appender name="console" class="org.apache.log4j.ConsoleAppender">
6
+ <param name="Target" value="System.out" />
7
+ <layout class="org.apache.log4j.PatternLayout">
8
+ <param name="ConversionPattern" value="%-5p %c{1} - %m%n" />
9
+ </layout>
10
+ </appender>
11
+
12
+ <!--<appender name="CSV_APPENDER" class="org.apache.log4j.rolling.RollingFileAppender">
13
+ <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
14
+ <param name="FileNamePattern" value="log/TMCUserDebug.csv.%d{MM-dd-yyyy}"/>
15
+ </rollingPolicy>
16
+ <param name="File" value="log/TMCUserDebug.csv" />
17
+ <param name="Append" value="true" />
18
+ <param name="MaxBackupIndex" value="100" />
19
+ <param name="FileExtension" value="csv" />
20
+ <param name="DatePattern" value=".MM-dd-yyyy" />
21
+ <layout class="com.twc.atg.logging.Headerlayout">
22
+ <param name="ConversionPattern" value="%d{MM-dd-yyyy,hh:mm:ss a},%m%n" />
23
+ </layout>
24
+ </appender> -->
25
+ <appender name="CSV_APPENDER" class="com.twc.atg.logging.TMCCSVAppender">
26
+ <param name="File" value="log/TMCUserDebug.csv" />
27
+ <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
28
+ <param name="FileNamePattern" value="log/TMCUserDebug.csv.%d{MM-dd-yyyy}"/>
29
+ </rollingPolicy>
30
+ <param name="Append" value="true" />
31
+ <param name="DatePattern" value="'.'yyyy-MM-dd" />
32
+ <layout class="com.twc.atg.logging.Headerlayout">
33
+ <param name="ConversionPattern" value="%d{MM-dd-yyyy,hh:mm:ss:SSS a},%m%n" />
34
+ </layout>
35
+ </appender>
36
+ <appender name="SystemLog"
37
+ class="org.apache.log4j.DailyRollingFileAppender">
38
+ <param name="File"
39
+ value="log/TMCLib_System.log" />
40
+ <param name="Append" value="true" />
41
+ <param name="maxFileSize" value="5120KB" />
42
+ <param name="MaxBackupIndex" value="100" />
43
+ <param name="FileExtension" value="csv" />
44
+ <layout class="org.apache.log4j.PatternLayout">
45
+ <param name="ConversionPattern" value="%d[%t], %m%n" />
46
+ </layout>
47
+ </appender>
48
+ <logger name="UserTMCLog">
49
+ <level value="all"/>
50
+ <appender-ref ref="CSV_APPENDER"/>
51
+ </logger>
52
+ <logger name="TMCLibSystemLog">
53
+ <level value="INFO"/>
54
+ <appender-ref ref="SystemLog"/>
55
+ </logger>
56
+ <root>
57
+ <level value="INFO"/>
58
+ <appender-ref ref="console" />
59
+ </root>
60
+
61
+ </log4j:configuration>
62
+
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
+ <!--<xs:element name="mode">-->
4
+ <xs:attribute name="mode">
5
+ <xs:simpleType>
6
+ <xs:restriction base="xs:string">
7
+ <xs:enumeration value="SERIAL" />
8
+ <xs:enumeration value="PARALLEL" />
9
+ </xs:restriction>
10
+ </xs:simpleType>
11
+ </xs:attribute>
12
+ </xs:schema>
@@ -0,0 +1,63 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
+ elementFormDefault="qualified">
4
+ <xs:include schemaLocation="mode.xsd" />
5
+ <xs:include schemaLocation="rackip.xsd" />
6
+ <xs:element name="test-jobs">
7
+ <xs:complexType>
8
+ <xs:sequence>
9
+ <xs:element maxOccurs="unbounded" ref="testjob" />
10
+ </xs:sequence>
11
+ </xs:complexType>
12
+ </xs:element>
13
+ <xs:element name="testjob">
14
+ <xs:complexType>
15
+ <xs:sequence>
16
+ <xs:element maxOccurs="unbounded" ref="testcases" />
17
+ <xs:element maxOccurs="1" minOccurs="1" ref="settopbox" />
18
+ </xs:sequence>
19
+ <xs:attribute use="required" ref="mode" />
20
+ <xs:attribute name="iterations" use="required" type="xs:positiveInteger" />
21
+ <xs:attribute use="required" ref="rack-ip" />
22
+ <xs:attribute name="job-name" use="required" type="xs:string" />
23
+ </xs:complexType>
24
+ </xs:element>
25
+
26
+ <xs:element name="testcases">
27
+ <xs:complexType>
28
+ <xs:sequence>
29
+ <xs:element maxOccurs="unbounded" ref="class" />
30
+ </xs:sequence>
31
+ </xs:complexType>
32
+ </xs:element>
33
+
34
+
35
+ <xs:element name="class">
36
+ <xs:complexType>
37
+ <xs:attribute name="name" use="required" type="xs:string" />
38
+ <xs:attribute name="enabled" use="required" type="xs:boolean" />
39
+ <xs:attribute name="params" use="optional" type="xs:string" />
40
+ </xs:complexType>
41
+ </xs:element>
42
+
43
+ <xs:element name="settopbox">
44
+ <xs:complexType>
45
+ <xs:attribute ref="nums"/>
46
+ </xs:complexType>
47
+ </xs:element>
48
+
49
+ <xs:simpleType name='num-segments'>
50
+ <xs:list itemType='xs:string' />
51
+ </xs:simpleType>
52
+
53
+ <xs:attribute name="nums">
54
+ <xs:simpleType>
55
+ <xs:restriction base="num-segments">
56
+ <!-- <xs:pattern value='[\d{1,2}]([,]{1}\d{1,2})*' /> -->
57
+ <xs:pattern value='[1-9][0-9]?([ ]*[,]{1}[ ]*[1-9][0-9]?)*' /> <!-- this pattern elimantes 0 numbers -->
58
+ </xs:restriction>
59
+ </xs:simpleType>
60
+ </xs:attribute>
61
+
62
+
63
+ </xs:schema>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
+
4
+ <xs:annotation>
5
+ <xs:appinfo>
6
+ <meta.schema id="RackIp" name="RackIpnotion"/>
7
+ </xs:appinfo>
8
+ <xs:documentation>
9
+ </xs:documentation>
10
+ </xs:annotation>
11
+
12
+
13
+ <xs:simpleType name='ipblocks'>
14
+ <xs:list itemType='xs:string' />
15
+ </xs:simpleType>
16
+
17
+ <xs:attribute name="rack-ip">
18
+ <xs:simpleType>
19
+ <xs:restriction base='ipblocks'>
20
+ <xs:pattern value='(\d){1,3}.(\d){1,3}.(\d){1,3}.(\d){1,3}' />
21
+ </xs:restriction>
22
+ </xs:simpleType>
23
+ </xs:attribute>
24
+ </xs:schema>
@@ -0,0 +1,199 @@
1
+ require 'aws-sdk-s3'
2
+ require 'io/console'
3
+
4
+ DRY_RUN = ARGV.include?('--dry-run')
5
+ TERSE_CHR = ARGV.include?('--terse') ? '.' : nil
6
+ HELP = ARGV.any? { |a| ['--help', '--?', '-h'].include?(a) }
7
+ SKIP = ARGV.include?('--skip')
8
+
9
+ target = ARGV.pop # last
10
+ source = ARGV.pop # 2nd-to-last
11
+ if !source.nil? && source.include?('--')
12
+ source = nil
13
+ end
14
+ if !target.nil? && target.include?('--')
15
+ target = nil
16
+ end
17
+ ARGV.clear
18
+
19
+ def help
20
+ puts 'USAGE: ruby copy_ref_images.rb [OPTIONS] SOURCE TARGET'
21
+ puts 'SOURCE: Source workspace from which to copy images'
22
+ puts 'TARGET: Target workspace to which to copy images'
23
+ puts 'OPTIONS:'
24
+ puts ' --dry-run Do not copy images'
25
+ puts ' --terse Do not show detailed progress'
26
+ puts ' --skip Skip duplicate images'
27
+ puts ' --help, --?, -h Show this help'
28
+ exit(0)
29
+ end
30
+
31
+ # Print help if wanted
32
+ help if HELP
33
+
34
+ # Get AWS credentials
35
+ print "\nAWS Access Key ID>"
36
+ ENV['AWS_ACCESS_KEY_ID'] = STDIN.noecho(&:gets).chomp
37
+ print "#{"*" * ENV['AWS_ACCESS_KEY_ID'].length}\nAWS Secret Access Key>"
38
+ ENV['AWS_SECRET_ACCESS_KEY'] = STDIN.noecho(&:gets).chomp
39
+ print "#{"*" * ENV['AWS_SECRET_ACCESS_KEY'].length}\n"
40
+ ENV['AWS_REGION'] = 'us-east-1'
41
+
42
+ def main(source, target)
43
+ # Get workspaces
44
+ puts
45
+ existing_branches = `git ls-remote --heads`.scan(/refs\/heads\/([^\s]+)/).flatten
46
+ puts "\nFound workspaces: #{existing_branches.inspect}"
47
+ source ||= 'master'
48
+ print "\nSource workspace [#{source}]>"
49
+ ans = gets.strip
50
+ unless ans.empty?
51
+ source = ans
52
+ end
53
+ unless existing_branches.include?(source)
54
+ puts "Source workspace [#{source}] does not exist."
55
+ help
56
+ end
57
+ target ||= source
58
+ print "Target workspace [#{target}]>"
59
+ ans = gets.strip
60
+ unless ans.empty?
61
+ target = ans
62
+ end
63
+ unless existing_branches.include?(target)
64
+ puts "Target workspace [#{target}] does not exist."
65
+ help
66
+ end
67
+
68
+ summary = {}
69
+ start = Time.now
70
+ errors = nil
71
+ skipped = 0
72
+ replaced = 0
73
+ copied = 0
74
+ begin
75
+ # Connect and check bucket
76
+ bucket = 'tmc-ref-images'
77
+ s3 = Aws::S3::Resource.new
78
+ b = s3.bucket(bucket)
79
+ unless b.exists?
80
+ raise "Bucket '#{bucket}' does not exist."
81
+ end
82
+ remote_image_files = {}
83
+ [source, target].map do |ws|
84
+ images = []
85
+ marker = nil
86
+ loop do
87
+ new_objects = b.objects(marker: marker, prefix: "media/#{ws}/")
88
+ count = 0
89
+ new_objects.each do |o|
90
+ count += 1
91
+ images << o.key
92
+ end
93
+ break if count == 0
94
+ marker = images.last
95
+ end
96
+ remote_image_files[ws] = images
97
+ end
98
+
99
+ puts
100
+ remote_image_files.each do |ws, files|
101
+ puts "Found #{files.count} ref images in workspace #{ws}."
102
+ end
103
+ print "\nContinue#{DRY_RUN ? ' with dry run' : ''}? [Yes]>"
104
+ ans = gets.chomp
105
+ if !ans.empty? && ans.match(/(?i)y(es)?/).nil?
106
+ puts "Aborted."
107
+ exit(0)
108
+ end
109
+ puts
110
+ # Launch thread to show progress
111
+ progress = Thread.new do
112
+ until Thread.current[:stop?]
113
+ if Thread.current[:show?]
114
+ print TERSE_CHR || '='
115
+ sleep 1
116
+ else
117
+ sleep 0.25
118
+ end
119
+ end
120
+ end
121
+ # Copy ref images
122
+ begin
123
+ start = Time.now
124
+ remote_image_files[source].each_with_index do |key, i|
125
+ index_str = "#{i + 1}/#{remote_image_files[source].count}"
126
+ action = 'Copying'
127
+ log_skip = lambda { print TERSE_CHR || "[#{index_str}] Skipping: #{key}\n" }
128
+ dst_key = key.sub("media/#{source}", "media/#{target}")
129
+ if remote_image_files[target].include?(dst_key)
130
+ if SKIP
131
+ log_skip.call
132
+ skipped += 1
133
+ next
134
+ end
135
+ o = b.object(dst_key)
136
+ o.delete unless DRY_RUN
137
+ action = 'Replacing'
138
+ replaced += 1
139
+ end
140
+ print "[#{index_str}] #{action}: #{key} " if TERSE_CHR.nil?
141
+ unless DRY_RUN
142
+ # Do copy
143
+ begin
144
+ progress[:show?] = true
145
+ o = b.object(key)
146
+ c = o.copy_to(bucket: bucket, key: dst_key)
147
+ print "> #{c.public_url}" if TERSE_CHR.nil?
148
+ copied += 1
149
+ progress[:show?] = false
150
+ rescue => e
151
+ progress[:show?] = false
152
+ errors ||= {}
153
+ errors[key] = e
154
+ ensure
155
+ progress[:show?] = false
156
+ end
157
+ end
158
+ puts if TERSE_CHR.nil?
159
+ end
160
+ ensure
161
+ summary.update(
162
+ total_sec: Time.now - start,
163
+ errors: errors,
164
+ skipped: skipped,
165
+ replaced: replaced,
166
+ copied: copied
167
+ )
168
+ progress[:stop?] = true
169
+ progress.join
170
+ end
171
+ rescue => e
172
+ summary[:error] = e
173
+ end
174
+
175
+ # Print results
176
+ puts "\n\n=== Copy Summary ==="
177
+ if summary[:error].nil?
178
+ skipped = summary[:skipped]
179
+ replaced = summary[:replaced]
180
+ total_sec = summary[:total_sec]
181
+ copied = summary[:copied]
182
+ errors = summary[:errors]
183
+
184
+ puts "Skipped #{skipped} ref images."
185
+ puts "Replaced #{replaced} ref images."
186
+ h = total_sec.round / 3600
187
+ m = (total_sec.round % 3600) / 60
188
+ s = (total_sec.round % 3600) % 60
189
+ puts "Copied #{copied} ref images in #{h.to_s.rjust(2, '0')}:#{m.to_s.rjust(2, '0')}:#{s.to_s.rjust(2, '0')}"
190
+ unless errors.nil?
191
+ puts "\nImage errors:\n#{errors.map { |k, e| "#{k} [#{e.message}]" }.join("\n")}"
192
+ end
193
+ else
194
+ e = summary[:error]
195
+ puts "Error: #{e.message}\n#{e.backtrace.join("\n")}"
196
+ end
197
+ end
198
+
199
+ main(source, target)