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.
- checksums.yaml +7 -0
- data/lib/EXECUTION_ENGINE.md +282 -0
- data/lib/Gemfile +12 -0
- data/lib/README.md +138 -0
- data/lib/User_Lib/helpers/helpers.rb +13 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_black_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_color_rois.rb +9 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_image_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_text_rois.rb +48 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_1080/apple_tv_1080_video_rois.rb +11 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_black_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_color_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_image_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_rois.rb +23 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_text_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_720/apple_tv_720_video_rois.rb +11 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_black_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_color_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_image_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_rois.rb +23 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_text_rois.rb +7 -0
- data/lib/User_Lib/rois/apple_tv/apple_tv_video_rois.rb +7 -0
- data/lib/User_Lib/rois/black_rois.rb +33 -0
- data/lib/User_Lib/rois/color_rois.rb +38 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_black_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_color_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_image_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_rois.rb +26 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_text_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_1080/dta_1080_video_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_black_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_color_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_image_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_rois.rb +26 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_text_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_720/dta_720_video_rois.rb +8 -0
- data/lib/User_Lib/rois/dta/dta_black_rois.rb +9 -0
- data/lib/User_Lib/rois/dta/dta_color_rois.rb +9 -0
- data/lib/User_Lib/rois/dta/dta_image_rois.rb +9 -0
- data/lib/User_Lib/rois/dta/dta_rois.rb +26 -0
- data/lib/User_Lib/rois/dta/dta_text_rois.rb +9 -0
- data/lib/User_Lib/rois/dta/dta_video_rois.rb +9 -0
- data/lib/User_Lib/rois/image_rois.rb +38 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_rois.rb +26 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_1080/mdn_1080_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_rois.rb +26 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_720/mdn_720_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mdn/mdn_black_rois.rb +9 -0
- data/lib/User_Lib/rois/mdn/mdn_color_rois.rb +9 -0
- data/lib/User_Lib/rois/mdn/mdn_image_rois.rb +9 -0
- data/lib/User_Lib/rois/mdn/mdn_rois.rb +26 -0
- data/lib/User_Lib/rois/mdn/mdn_text_rois.rb +13 -0
- data/lib/User_Lib/rois/mdn/mdn_video_rois.rb +9 -0
- data/lib/User_Lib/rois/mobile/android/android_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_image_rois.rb +43 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_phone/android_phone_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_image_rois.rb +54 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_tablet/android_tablet_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/android/android_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_phone/ios_phone_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_color_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_image_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_tablet/ios_tablet_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/ios/ios_video_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/mobile_black_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/mobile_color_rois.rb +12 -0
- data/lib/User_Lib/rois/mobile/mobile_image_rois.rb +38 -0
- data/lib/User_Lib/rois/mobile/mobile_rois.rb +22 -0
- data/lib/User_Lib/rois/mobile/mobile_text_rois.rb +8 -0
- data/lib/User_Lib/rois/mobile/mobile_video_rois.rb +8 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_black_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_color_rois.rb +9 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_image_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_text_rois.rb +8 -0
- data/lib/User_Lib/rois/passport/passport_1080/passport_1080_video_rois.rb +8 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_black_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_color_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_image_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_rois.rb +23 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_text_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_720/passport_720_video_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_black_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_color_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_image_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_rois.rb +23 -0
- data/lib/User_Lib/rois/passport/passport_text_rois.rb +7 -0
- data/lib/User_Lib/rois/passport/passport_video_rois.rb +7 -0
- data/lib/User_Lib/rois/rois.rb +22 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_black_rois.rb +37 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_color_rois.rb +336 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_image_rois.rb +235 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_rois.rb +23 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_text_rois.rb +1523 -0
- data/lib/User_Lib/rois/roku/roku_720/roku_720_video_rois.rb +32 -0
- data/lib/User_Lib/rois/roku/roku_black_rois.rb +14 -0
- data/lib/User_Lib/rois/roku/roku_color_rois.rb +9 -0
- data/lib/User_Lib/rois/roku/roku_image_rois.rb +13 -0
- data/lib/User_Lib/rois/roku/roku_rois.rb +23 -0
- data/lib/User_Lib/rois/roku/roku_text_rois.rb +9 -0
- data/lib/User_Lib/rois/roku/roku_video_rois.rb +9 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_black_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_color_rois.rb +11 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_image_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_text_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_1080/roku_tv_1080_video_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_black_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_color_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_image_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_rois.rb +23 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_text_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_720/roku_tv_720_video_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_black_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_color_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_image_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_rois.rb +23 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_text_rois.rb +12 -0
- data/lib/User_Lib/rois/roku_tv/roku_tv_video_rois.rb +12 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_black_rois.rb +13 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_color_rois.rb +29 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_image_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_text_rois.rb +92 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_1080/samsung_tv_1080_video_rois.rb +11 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_black_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_color_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_image_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_rois.rb +23 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_text_rois.rb +12 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_720/samsung_tv_720_video_rois.rb +11 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_black_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_color_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_image_rois.rb +9 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_rois.rb +23 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_text_rois.rb +12 -0
- data/lib/User_Lib/rois/samsung_tv/samsung_tv_video_rois.rb +9 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_black_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_color_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_image_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_rois.rb +26 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_text_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_1080/sara_1080_video_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_black_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_color_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_image_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_rois.rb +26 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_text_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_720/sara_720_video_rois.rb +8 -0
- data/lib/User_Lib/rois/sara/sara_black_rois.rb +9 -0
- data/lib/User_Lib/rois/sara/sara_color_rois.rb +9 -0
- data/lib/User_Lib/rois/sara/sara_image_rois.rb +9 -0
- data/lib/User_Lib/rois/sara/sara_rois.rb +26 -0
- data/lib/User_Lib/rois/sara/sara_text_rois.rb +9 -0
- data/lib/User_Lib/rois/sara/sara_video_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_black_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_color_rois.rb +17 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_image_rois.rb +19 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_text_rois.rb +47 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_1080/iguide_1080_video_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_black_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_color_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_image_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_text_rois.rb +17 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_720/iguide_720_video_rois.rb +11 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_black_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_color_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_image_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_text_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/iguide/iguide_video_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_image_rois.rb +12 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_text_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_1080/odn_1080_video_rois.rb +11 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_black_rois.rb +46 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_color_rois.rb +142 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_image_rois.rb +103 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_black_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_color_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_image_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_text_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_moto/odn_720_moto_video_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_black_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_color_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_image_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_text_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_sa/odn_720_sa_video_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_black_rois.rb +6 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_color_rois.rb +77 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_image_rois.rb +67 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_text_rois.rb +159 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_samsung/odn_720_samsung_video_rois.rb +17 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_text_rois.rb +221 -0
- data/lib/User_Lib/rois/stb/odn/odn_720/odn_720_video_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/odn/odn_black_rois.rb +10 -0
- data/lib/User_Lib/rois/stb/odn/odn_color_rois.rb +10 -0
- data/lib/User_Lib/rois/stb/odn/odn_image_rois.rb +58 -0
- data/lib/User_Lib/rois/stb/odn/odn_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/odn/odn_text_rois.rb +70 -0
- data/lib/User_Lib/rois/stb/odn/odn_video_rois.rb +19 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_black_rois.rb +16 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_color_rois.rb +373 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_black_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_color_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_image_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_text_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis_video_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_image_rois.rb +1592 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_black_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_color_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_image_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_text_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace_video_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_text_rois.rb +2489 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_1080/spectrum_1080_video_rois.rb +64 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_black_rois.rb +7 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_color_rois.rb +63 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_black_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_color_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_image_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_rois.rb +26 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_text_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch_video_rois.rb +8 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_image_rois.rb +117 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_text_rois.rb +84 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_720/spectrum_720_video_rois.rb +35 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_black_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_color_rois.rb +17 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_image_rois.rb +49 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_text_rois.rb +51 -0
- data/lib/User_Lib/rois/stb/spectrum/spectrum_video_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/stb_black_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/stb_color_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/stb_image_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/stb_rois.rb +23 -0
- data/lib/User_Lib/rois/stb/stb_text_rois.rb +9 -0
- data/lib/User_Lib/rois/stb/stb_video_rois.rb +9 -0
- data/lib/User_Lib/rois/template.txt +23 -0
- data/lib/User_Lib/rois/text_rois.rb +36 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_black_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_color_rois.rb +9 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_image_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_rois.rb +23 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_text_rois.rb +9 -0
- data/lib/User_Lib/rois/tivo/tivo_1080/tivo_1080_video_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_black_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_color_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_image_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_rois.rb +23 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_text_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_720/tivo_720_video_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_black_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_color_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_image_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_rois.rb +23 -0
- data/lib/User_Lib/rois/tivo/tivo_text_rois.rb +7 -0
- data/lib/User_Lib/rois/tivo/tivo_video_rois.rb +7 -0
- data/lib/User_Lib/rois/video_rois.rb +33 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_dvr.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_guide.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_library.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_live_tv.rb +17 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_login.rb +24 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_main_menu.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_mini_guide.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_movies.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_on_demand.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_parental_controls.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_product_page.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_screen.rb +23 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_search.rb +31 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_settings.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_tv_shows.rb +25 -0
- data/lib/User_Lib/screen/apple_tv/apple_tv_video_store.rb +25 -0
- data/lib/User_Lib/screen/dta/dta_dvr.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_guide.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_library.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_live_tv.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_log_in.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_main_menu.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_mini_guide.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_movies.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_on_demand.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_parental_controls.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_product_page.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_screen.rb +24 -0
- data/lib/User_Lib/screen/dta/dta_search.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_settings.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_tv_shows.rb +26 -0
- data/lib/User_Lib/screen/dta/dta_video_store.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_dvr.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_guide.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_library.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_live_tv.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_log_in.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_main_menu.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_mini_guide.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_movies.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_on_demand.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_parental_controls.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_product_page.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_screen.rb +24 -0
- data/lib/User_Lib/screen/mdn/mdn_search.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_settings.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_tv_shows.rb +26 -0
- data/lib/User_Lib/screen/mdn/mdn_video_store.rb +26 -0
- data/lib/User_Lib/screen/mobile/android/android_devices.rb +35 -0
- data/lib/User_Lib/screen/mobile/android/android_dvr.rb +337 -0
- data/lib/User_Lib/screen/mobile/android/android_favorites.rb +164 -0
- data/lib/User_Lib/screen/mobile/android/android_guide.rb +256 -0
- data/lib/User_Lib/screen/mobile/android/android_live_tv.rb +372 -0
- data/lib/User_Lib/screen/mobile/android/android_login.rb +111 -0
- data/lib/User_Lib/screen/mobile/android/android_main_menu.rb +53 -0
- data/lib/User_Lib/screen/mobile/android/android_on_demand.rb +402 -0
- data/lib/User_Lib/screen/mobile/android/android_parental_controls.rb +73 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_dvr.rb +31 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_guide.rb +39 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_live_tv.rb +104 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_main_menu.rb +27 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_on_demand.rb +35 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_product_page.rb +7 -0
- data/lib/User_Lib/screen/mobile/android/android_phone/android_phone_search.rb +26 -0
- data/lib/User_Lib/screen/mobile/android/android_privacy_legal.rb +54 -0
- data/lib/User_Lib/screen/mobile/android/android_product_page.rb +484 -0
- data/lib/User_Lib/screen/mobile/android/android_screen.rb +56 -0
- data/lib/User_Lib/screen/mobile/android/android_search.rb +39 -0
- data/lib/User_Lib/screen/mobile/android/android_settings.rb +90 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_dvr.rb +58 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_guide.rb +24 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_live_tv.rb +24 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_main_menu.rb +19 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_on_demand.rb +16 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_product_page.rb +45 -0
- data/lib/User_Lib/screen/mobile/android/android_tablet/android_tablet_search.rb +14 -0
- data/lib/User_Lib/screen/mobile/devices_mobile.rb +53 -0
- data/lib/User_Lib/screen/mobile/dvr_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/favorites_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/guide_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/ios/ios_devices.rb +43 -0
- data/lib/User_Lib/screen/mobile/ios/ios_dvr.rb +231 -0
- data/lib/User_Lib/screen/mobile/ios/ios_favorites.rb +79 -0
- data/lib/User_Lib/screen/mobile/ios/ios_guide.rb +53 -0
- data/lib/User_Lib/screen/mobile/ios/ios_live_tv.rb +413 -0
- data/lib/User_Lib/screen/mobile/ios/ios_login.rb +76 -0
- data/lib/User_Lib/screen/mobile/ios/ios_main_menu.rb +38 -0
- data/lib/User_Lib/screen/mobile/ios/ios_on_demand.rb +371 -0
- data/lib/User_Lib/screen/mobile/ios/ios_parental_controls.rb +104 -0
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_dvr.rb +14 -0
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_live_tv.rb +36 -0
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_main_menu.rb +7 -0
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_on_demand.rb +7 -0
- data/lib/User_Lib/screen/mobile/ios/ios_phone/ios_phone_search.rb +13 -0
- data/lib/User_Lib/screen/mobile/ios/ios_privacy_legal.rb +56 -0
- data/lib/User_Lib/screen/mobile/ios/ios_product_page.rb +441 -0
- data/lib/User_Lib/screen/mobile/ios/ios_screen.rb +60 -0
- data/lib/User_Lib/screen/mobile/ios/ios_search.rb +145 -0
- data/lib/User_Lib/screen/mobile/ios/ios_settings.rb +34 -0
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_live_tv.rb +34 -0
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_main_menu.rb +7 -0
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_on_demand.rb +7 -0
- data/lib/User_Lib/screen/mobile/ios/ios_tablet/ios_tablet_search.rb +13 -0
- data/lib/User_Lib/screen/mobile/live_tv_mobile.rb +73 -0
- data/lib/User_Lib/screen/mobile/login_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/main_menu_mobile.rb +83 -0
- data/lib/User_Lib/screen/mobile/mobile_screen.rb +232 -0
- data/lib/User_Lib/screen/mobile/on_demand_mobile.rb +70 -0
- data/lib/User_Lib/screen/mobile/parental_controls_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/privacy_legal_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/product_page_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/search_mobile.rb +5 -0
- data/lib/User_Lib/screen/mobile/settings_mobile.rb +33 -0
- data/lib/User_Lib/screen/passport/passport_dvr.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_guide.rb +37 -0
- data/lib/User_Lib/screen/passport/passport_library.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_live_tv.rb +17 -0
- data/lib/User_Lib/screen/passport/passport_main_menu.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_mini_guide.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_movies.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_on_demand.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_parental_controls.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_product_page.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_screen.rb +23 -0
- data/lib/User_Lib/screen/passport/passport_search.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_settings.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_tv_shows.rb +25 -0
- data/lib/User_Lib/screen/passport/passport_video_store.rb +25 -0
- data/lib/User_Lib/screen/roku/brs/roku_guide_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_home_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_live_tv_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_login_brs.rb +103 -0
- data/lib/User_Lib/screen/roku/brs/roku_main_menu_brs.rb +46 -0
- data/lib/User_Lib/screen/roku/brs/roku_on_demand_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_product_page_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_screen_brs.rb +9 -0
- data/lib/User_Lib/screen/roku/brs/roku_search_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_settings_brs.rb +42 -0
- data/lib/User_Lib/screen/roku/brs/roku_watch_later_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/brs/roku_welcome_brs.rb +12 -0
- data/lib/User_Lib/screen/roku/roku_dvr.rb +7 -0
- data/lib/User_Lib/screen/roku/roku_guide.rb +590 -0
- data/lib/User_Lib/screen/roku/roku_home.rb +346 -0
- data/lib/User_Lib/screen/roku/roku_library.rb +26 -0
- data/lib/User_Lib/screen/roku/roku_live_tv.rb +210 -0
- data/lib/User_Lib/screen/roku/roku_login.rb +795 -0
- data/lib/User_Lib/screen/roku/roku_main_menu.rb +425 -0
- data/lib/User_Lib/screen/roku/roku_mini_guide.rb +7 -0
- data/lib/User_Lib/screen/roku/roku_on_demand.rb +479 -0
- data/lib/User_Lib/screen/roku/roku_product_page.rb +483 -0
- data/lib/User_Lib/screen/roku/roku_screen.rb +85 -0
- data/lib/User_Lib/screen/roku/roku_search.rb +229 -0
- data/lib/User_Lib/screen/roku/roku_settings.rb +304 -0
- data/lib/User_Lib/screen/roku/roku_watch_later.rb +51 -0
- data/lib/User_Lib/screen/roku/roku_welcome.rb +10 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_dvr.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_guide.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_home.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_library.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_live_tv.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_login.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_main_menu.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_mini_guide.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_on_demand.rb +26 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_product_page.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_screen.rb +7 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_search.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_settings.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_watch_later.rb +14 -0
- data/lib/User_Lib/screen/roku_tv/roku_tv_welcome.rb +14 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_dvr.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_guide.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_library.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_live_tv.rb +21 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_login.rb +13 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_main_menu.rb +64 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_mini_guide.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_movies.rb +140 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_on_demand.rb +76 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_parental_controls.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_product_page.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_screen.rb +74 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_search.rb +29 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_settings.rb +189 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_tv_shows.rb +24 -0
- data/lib/User_Lib/screen/samsung_tv/samsung_tv_video_store.rb +24 -0
- data/lib/User_Lib/screen/sara/sara_dvr.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_guide.rb +43 -0
- data/lib/User_Lib/screen/sara/sara_library.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_live_tv.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_log_in.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_main_menu.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_mini_guide.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_movies.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_on_demand.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_parental_controls.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_product_page.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_screen.rb +24 -0
- data/lib/User_Lib/screen/sara/sara_search.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_settings.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_tv_shows.rb +26 -0
- data/lib/User_Lib/screen/sara/sara_video_store.rb +26 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_devices.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_dvr.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_favorites.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_guide.rb +39 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_home.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_library.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_live_tv.rb +59 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_login.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_main_menu.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_mini_guide.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_movies.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_on_demand.rb +531 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_parental_controls.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_privacy_legal.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_product_page.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_quick_menu.rb +7 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_screen.rb +21 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_search.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_settings.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_tv_shows.rb +10 -0
- data/lib/User_Lib/screen/stb/iguide/iguide_video_store.rb +10 -0
- data/lib/User_Lib/screen/stb/login_stb.rb +5 -0
- data/lib/User_Lib/screen/stb/odn/odn_dvr.rb +59 -0
- data/lib/User_Lib/screen/stb/odn/odn_favorites.rb +8 -0
- data/lib/User_Lib/screen/stb/odn/odn_guide.rb +177 -0
- data/lib/User_Lib/screen/stb/odn/odn_live_tv.rb +115 -0
- data/lib/User_Lib/screen/stb/odn/odn_login.rb +8 -0
- data/lib/User_Lib/screen/stb/odn/odn_main_menu.rb +175 -0
- data/lib/User_Lib/screen/stb/odn/odn_on_demand.rb +1170 -0
- data/lib/User_Lib/screen/stb/odn/odn_on_demand_kids.rb +23 -0
- data/lib/User_Lib/screen/stb/odn/odn_on_demand_left_menu.rb +180 -0
- data/lib/User_Lib/screen/stb/odn/odn_parental_controls.rb +9 -0
- data/lib/User_Lib/screen/stb/odn/odn_product_page.rb +8 -0
- data/lib/User_Lib/screen/stb/odn/odn_screen.rb +111 -0
- data/lib/User_Lib/screen/stb/odn/odn_search.rb +167 -0
- data/lib/User_Lib/screen/stb/odn/odn_settings.rb +142 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_diagnostics.rb +27 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/screen_spectrum_docsis.rb +12 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_guide.rb +10 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_main_menu.rb +10 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_settings.rb +10 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_dvr.rb +1781 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_guide.rb +841 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_library.rb +384 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_live_tv.rb +259 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_main_menu.rb +223 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_mini_guide.rb +404 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_movies.rb +420 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_netflix.rb +37 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_on_demand.rb +2137 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_parental_controls.rb +528 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_pay_per_view.rb +26 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_product_page.rb +58 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_screen.rb +48 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_search.rb +92 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_settings.rb +1657 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_tv_shows.rb +1532 -0
- data/lib/User_Lib/screen/stb/spectrum/spectrum_video_store.rb +1598 -0
- data/lib/User_Lib/screen/stb/stb_screen.rb +7 -0
- data/lib/User_Lib/screen/tivo/tivo_dvr.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_guide.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_library.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_live_tv.rb +17 -0
- data/lib/User_Lib/screen/tivo/tivo_login.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_main_menu.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_mini_guide.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_movies.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_on_demand.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_parental_controls.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_product_page.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_screen.rb +20 -0
- data/lib/User_Lib/screen/tivo/tivo_search.rb +31 -0
- data/lib/User_Lib/screen/tivo/tivo_settings.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_tv_shows.rb +25 -0
- data/lib/User_Lib/screen/tivo/tivo_video_store.rb +25 -0
- data/lib/config/ConfigParams.xml +96 -0
- data/lib/config/ImageROI.xml +45 -0
- data/lib/config/ROI.xml +150 -0
- data/lib/config/Userlog4j.xml +62 -0
- data/lib/config/schema-docs/mode.xsd +12 -0
- data/lib/config/schema-docs/processTestJobs.xsd +63 -0
- data/lib/config/schema-docs/rackip.xsd +24 -0
- data/lib/copy_ref_images.rb +199 -0
- data/lib/copy_repo.rb +136 -0
- data/lib/diagnostics/conductor/conductor_checkup.tmc +24 -0
- data/lib/diagnostics/db/mad_db_check.tmc +56 -0
- data/lib/diagnostics/db/mas_db_checkup.tmc +24 -0
- data/lib/diagnostics/db/mas_db_checkup_gem.tmc +20 -0
- data/lib/diagnostics/db/mas_db_checkup_jar.tmc +50 -0
- data/lib/diagnostics/iguide/iguide_nvram_reset.tmc +23 -0
- data/lib/diagnostics/iguide/iguide_prepare_stb.tmc +33 -0
- data/lib/diagnostics/iguide/iguide_prepare_stb_and_health_check.tmc +63 -0
- data/lib/diagnostics/iguide/iguide_stb_health_check.tmc +54 -0
- data/lib/diagnostics/prepare_stb.tmc +30 -0
- data/lib/diagnostics/prepare_stb_and_health_check.tmc +56 -0
- data/lib/diagnostics/script_options/options_checkup.tmc +145 -0
- data/lib/diagnostics/server_components_check.tmc +62 -0
- data/lib/diagnostics/ssh/dncs_checkup.tmc +24 -0
- data/lib/diagnostics/ssh/mas_checkup.tmc +24 -0
- data/lib/diagnostics/stb_health_check.tmc +46 -0
- data/lib/diagnostics/stb_ip_check.tmc +120 -0
- data/lib/diagnostics/webservices/mas_rest_services_checkup.tmc +24 -0
- data/lib/diagnostics/webservices/mas_soap_services_checkup.tmc +24 -0
- data/lib/dsllib/common/dncs/dncs_utils.rb +449 -0
- data/lib/dsllib/common/mas_db/mas_conductor.rb +1328 -0
- data/lib/dsllib/common/mas_db/mas_db.rb +154 -0
- data/lib/dsllib/common/mas_db/mas_publish.rb +2349 -0
- data/lib/dsllib/common/mas_db/mas_rest_services.rb +75 -0
- data/lib/dsllib/common/mas_db/mas_soap_services.rb +540 -0
- data/lib/dsllib/common/mas_db/mas_utils.rb +422 -0
- data/lib/dsllib/common/remote_diagnostics/mdn_remote_diagnostics.rb +1335 -0
- data/lib/dsllib/common/remote_diagnostics/odn_web_server.rb +269 -0
- data/lib/dsllib/common/utils/excel_export.rb +273 -0
- data/lib/dsllib/common/utils/excel_module.rb +890 -0
- data/lib/dsllib/common/utils/server_components_utils.rb +130 -0
- data/lib/dsllib/common/utils/stb_health_check_utils.rb +92 -0
- data/lib/dsllib/common/utils/sword_utils.rb +393 -0
- data/lib/dsllib/common/utils/tmc_utils.rb +2944 -0
- data/lib/dsllib/common/utils/virtual_keyboard_navigator.rb +208 -0
- data/lib/dsllib/common/utils/virtual_keyboard_vp_navigator.rb +195 -0
- data/lib/dsllib/performance/DTA/roi.rb +214 -0
- data/lib/dsllib/performance/DTA/utils.rb +96 -0
- data/lib/dsllib/performance/iguide_concurrent_test/ROI.rb +236 -0
- data/lib/dsllib/performance/iguide_concurrent_test/utils.rb +533 -0
- data/lib/dsllib/performance/measure_tune.rb +438 -0
- data/lib/dsllib/performance/perf_lib.rb +660 -0
- data/lib/end_iteration.rb +4 -0
- data/lib/lib/data_services/channel.rb +39 -0
- data/lib/lib/data_services/data_services.rb +14 -0
- data/lib/lib/data_services/guide.rb +104 -0
- data/lib/lib/data_services/lineup.rb +114 -0
- data/lib/lib/data_services/program.rb +48 -0
- data/lib/lib/data_services/schedule.rb +18 -0
- data/lib/lib/data_services/splunk_connector.rb +135 -0
- data/lib/lib/data_services/splunk_data_reader.rb +77 -0
- data/lib/lib/element/element.rb +79 -0
- data/lib/lib/extensions/array_extensions.rb +32 -0
- data/lib/lib/extensions/datetime_extensions.rb +8 -0
- data/lib/lib/extensions/extensions.rb +51 -0
- data/lib/lib/extensions/file_extensions.rb +32 -0
- data/lib/lib/extensions/float_extensions.rb +32 -0
- data/lib/lib/extensions/integer_extensions.rb +39 -0
- data/lib/lib/extensions/nethttp_extensions.rb +11 -0
- data/lib/lib/extensions/object_extensions.rb +7 -0
- data/lib/lib/extensions/string_extensions.rb +35 -0
- data/lib/lib/helpers/tmc_helpers/csv_helper/csv_helper.rb +85 -0
- data/lib/lib/helpers/tmc_helpers/email_helper/email_helper.rb +71 -0
- data/lib/lib/helpers/tmc_helpers/http_helper/http_helper.rb +133 -0
- data/lib/lib/helpers/tmc_helpers/roi_helper/roi_helper.rb +17 -0
- data/lib/lib/helpers/tmc_helpers/snmp_helper/snmp_helper.rb +71 -0
- data/lib/lib/helpers/tmc_helpers/ssh_helper/ssh_helper.rb +337 -0
- data/lib/lib/helpers/tmc_helpers/tmc_helpers.rb +1260 -0
- data/lib/lib/keyboard/apple_tv/apple_tv_password_keyboard.rb +102 -0
- data/lib/lib/keyboard/apple_tv/apple_tv_search_keyboard.rb +103 -0
- data/lib/lib/keyboard/apple_tv/apple_tv_username_keyboard.rb +105 -0
- data/lib/lib/keyboard/keyboard.rb +504 -0
- data/lib/lib/keyboard/keyboard_layout.rb +51 -0
- data/lib/lib/keyboard/roku/roku_reset_pin_keyboard.rb +12 -0
- data/lib/lib/keyboard/roku/roku_rsg_search_keyboard.rb +67 -0
- data/lib/lib/keyboard/roku/roku_rsg_signin_keyboard.rb +106 -0
- data/lib/lib/keyboard/roku/roku_search_keyboard.rb +10 -0
- data/lib/lib/keyboard/roku/roku_signin_keyboard.rb +42 -0
- data/lib/lib/keyboard/samsung_tv/samsung_tv_search_keyboard.rb +50 -0
- data/lib/lib/keyboard/samsung_tv/samsung_tv_signin_keyboard.rb +52 -0
- data/lib/lib/keyboard/stb/odn/odn_on_demand_search_keyboard.rb +10 -0
- data/lib/lib/keyboard/stb/odn/odn_search_keyboard.rb +10 -0
- data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_email_keyboard.rb +50 -0
- data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_keyboard.rb +43 -0
- data/lib/lib/keyboard/stb/spectrum/spectrum_netflix_name_keyboard.rb +16 -0
- data/lib/lib/keyboard/stb/spectrum/spectrum_search_keyboard.rb +32 -0
- data/lib/lib/keyboard/tivo/tivo_password_keyboard.rb +0 -0
- data/lib/lib/keyboard/tivo/tivo_search_keyboard.rb +0 -0
- data/lib/lib/keyboard/tivo/tivo_username_keyboard.rb +0 -0
- data/lib/lib/keys/apple_tv/apple_tv_keys.rb +26 -0
- data/lib/lib/keys/base_keys.rb +14 -0
- data/lib/lib/keys/dta/dta_keys.rb +60 -0
- data/lib/lib/keys/mdn/mdn_keys.rb +60 -0
- data/lib/lib/keys/passport/passport_keys.rb +59 -0
- data/lib/lib/keys/roku/roku_keys.rb +31 -0
- data/lib/lib/keys/roku_tv/roku_tv_keys.rb +32 -0
- data/lib/lib/keys/samsung_tv/samsung_tv_keys.rb +58 -0
- data/lib/lib/keys/sara/sara_keys.rb +60 -0
- data/lib/lib/keys/stb/iguide/iguide_keys.rb +56 -0
- data/lib/lib/keys/stb/odn/odn_keys.rb +63 -0
- data/lib/lib/keys/stb/spectrum/spectrum_keys.rb +59 -0
- data/lib/lib/keys/stb/stb_keys.rb +13 -0
- data/lib/lib/keys/tivo/tivo_keys.rb +26 -0
- data/lib/lib/logger/multi_io.rb +14 -0
- data/lib/lib/logger/tmc_dut_logger.rb +251 -0
- data/lib/lib/logger/tmc_logger.rb +30 -0
- data/lib/lib/mixins/assignable.rb +19 -0
- data/lib/lib/mixins/can_have_special_methods.rb +50 -0
- data/lib/lib/mixins/enumish.rb +16 -0
- data/lib/lib/new_platform.rb +302 -0
- data/lib/lib/new_sub_platform.rb +90 -0
- data/lib/lib/platform/apple_tv/apple_tv.rb +33 -0
- data/lib/lib/platform/apple_tv/apple_tv_1080/apple_tv_1080.rb +54 -0
- data/lib/lib/platform/apple_tv/apple_tv_720/apple_tv_720.rb +14 -0
- data/lib/lib/platform/dta/dta.rb +35 -0
- data/lib/lib/platform/dta/dta_1080/dta_1080.rb +15 -0
- data/lib/lib/platform/dta/dta_720/dta_720.rb +15 -0
- data/lib/lib/platform/mdn/mdn.rb +35 -0
- data/lib/lib/platform/mdn/mdn_1080/mdn_1080.rb +15 -0
- data/lib/lib/platform/mdn/mdn_720/mdn_720.rb +15 -0
- data/lib/lib/platform/mobile/android/android.rb +23 -0
- data/lib/lib/platform/mobile/android/android_phone/android_phone.rb +23 -0
- data/lib/lib/platform/mobile/android/android_tablet/android_tablet.rb +23 -0
- data/lib/lib/platform/mobile/ios/ios.rb +23 -0
- data/lib/lib/platform/mobile/ios/ios_phone/ios_phone.rb +23 -0
- data/lib/lib/platform/mobile/ios/ios_tablet/ios_tablet.rb +23 -0
- data/lib/lib/platform/mobile/mobile.rb +102 -0
- data/lib/lib/platform/passport/passport.rb +41 -0
- data/lib/lib/platform/passport/passport1080/passport_1080.rb +15 -0
- data/lib/lib/platform/passport/passport_720/passport_720.rb +14 -0
- data/lib/lib/platform/platform.rb +884 -0
- data/lib/lib/platform/roku/roku.rb +96 -0
- data/lib/lib/platform/roku/roku_720/roku_720.rb +16 -0
- data/lib/lib/platform/roku_tv/roku_tv.rb +33 -0
- data/lib/lib/platform/roku_tv/roku_tv_1080/roku_tv_1080.rb +14 -0
- data/lib/lib/platform/roku_tv/roku_tv_720/roku_tv_720.rb +14 -0
- data/lib/lib/platform/samsung_tv/samsung_tv.rb +31 -0
- data/lib/lib/platform/samsung_tv/samsung_tv_1080/samsung_tv_1080.rb +14 -0
- data/lib/lib/platform/samsung_tv/samsung_tv_720/samsung_tv_720.rb +14 -0
- data/lib/lib/platform/sara/sara.rb +42 -0
- data/lib/lib/platform/sara/sara_1080/sara_1080.rb +15 -0
- data/lib/lib/platform/sara/sara_720/sara_720.rb +15 -0
- data/lib/lib/platform/stb/iguide/iguide.rb +18 -0
- data/lib/lib/platform/stb/iguide/iguide_1080/iguide_1080.rb +14 -0
- data/lib/lib/platform/stb/iguide/iguide_720/iguide_720.rb +14 -0
- data/lib/lib/platform/stb/odn/odn.rb +480 -0
- data/lib/lib/platform/stb/odn/odn_1080/odn_1080.rb +14 -0
- data/lib/lib/platform/stb/odn/odn_720/odn_720.rb +14 -0
- data/lib/lib/platform/stb/odn/odn_720/odn_720_moto/odn_720_moto.rb +14 -0
- data/lib/lib/platform/stb/odn/odn_720/odn_720_sa/odn_720_sa.rb +14 -0
- data/lib/lib/platform/stb/odn/odn_720/odn_720_samsung/odn_720_samsung.rb +14 -0
- data/lib/lib/platform/stb/spectrum/spectrum.rb +48 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080.rb +14 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis/spectrum_1080_docsis.rb +16 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_arris/spectrum_1080_docsis_arris.rb +15 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_humax/spectrum_1080_docsis_humax.rb +15 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_docsis_tch/spectrum_1080_docsis_tch.rb +15 -0
- data/lib/lib/platform/stb/spectrum/spectrum_1080/spectrum_1080_pace/spectrum_1080_pace.rb +14 -0
- data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720.rb +14 -0
- data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_arris/spectrum_720_docsis_arris.rb +15 -0
- data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_humax/spectrum_720_docsis_humax.rb +15 -0
- data/lib/lib/platform/stb/spectrum/spectrum_720/spectrum_720_docsis_tch/spectrum_720_docsis_tch.rb +15 -0
- data/lib/lib/platform/stb/stb.rb +93 -0
- data/lib/lib/platform/template.txt +16 -0
- data/lib/lib/platform/tivo/tivo.rb +28 -0
- data/lib/lib/platform/tivo/tivo_1080/tivo_1080.rb +15 -0
- data/lib/lib/platform/tivo/tivo_720/tivo_720.rb +14 -0
- data/lib/lib/platform/web/web.rb +51 -0
- data/lib/lib/platform_libs/roku/roku_controller.rb +254 -0
- data/lib/lib/prereqs/prereqs.rb +17 -0
- data/lib/lib/prereqs/prereqs_for_dut.rb +14 -0
- data/lib/lib/prereqs/prereqs_for_test.rb +14 -0
- data/lib/lib/remotes/remotes.rb +8 -0
- data/lib/lib/remotes/stb/spectrum/spectrum_remotes.rb +22 -0
- data/lib/lib/roi/black/black_roi.rb +125 -0
- data/lib/lib/roi/color/color_roi.rb +138 -0
- data/lib/lib/roi/image/image_roi.rb +187 -0
- data/lib/lib/roi/roi.rb +1064 -0
- data/lib/lib/roi/template_roi.txt +9 -0
- data/lib/lib/roi/text/text_roi.rb +187 -0
- data/lib/lib/roi/video/video_roi.rb +98 -0
- data/lib/lib/screen/screen.rb +183 -0
- data/lib/lib/screen/template.txt +7 -0
- data/lib/lib/screen/template_screen.txt +10 -0
- data/lib/lib/screens/apple_tv/apple_tv_screens.rb +44 -0
- data/lib/lib/screens/dta/dta_screens.rb +49 -0
- data/lib/lib/screens/mdn/mdn_screens.rb +49 -0
- data/lib/lib/screens/mobile/android/android_phone/android_phone_screens.rb +28 -0
- data/lib/lib/screens/mobile/android/android_screens.rb +40 -0
- data/lib/lib/screens/mobile/android/android_tablet/android_tablet_screens.rb +29 -0
- data/lib/lib/screens/mobile/ios/ios_phone/ios_phone_screens.rb +22 -0
- data/lib/lib/screens/mobile/ios/ios_screens.rb +39 -0
- data/lib/lib/screens/mobile/ios/ios_tablet/ios_tablet_screens.rb +20 -0
- data/lib/lib/screens/mobile/mobile_screens.rb +18 -0
- data/lib/lib/screens/passport/passport_screens.rb +42 -0
- data/lib/lib/screens/roku/roku_screens.rb +72 -0
- data/lib/lib/screens/roku_tv/roku_tv_screens.rb +43 -0
- data/lib/lib/screens/samsung_tv/samsung_tv_screens.rb +44 -0
- data/lib/lib/screens/sara/sara_screens.rb +49 -0
- data/lib/lib/screens/screens.rb +23 -0
- data/lib/lib/screens/stb/iguide/iguide_1080/iguide_1080_screens.rb +56 -0
- data/lib/lib/screens/stb/iguide/iguide_720/iguide_720_screens.rb +56 -0
- data/lib/lib/screens/stb/iguide/iguide_screens.rb +54 -0
- data/lib/lib/screens/stb/odn/odn_screens.rb +40 -0
- data/lib/lib/screens/stb/spectrum/spectrum_docsis/spectrum_1080_docsis_screens.rb +18 -0
- data/lib/lib/screens/stb/spectrum/spectrum_screens.rb +48 -0
- data/lib/lib/screens/stb/stb_screens.rb +13 -0
- data/lib/lib/screens/template.txt +52 -0
- data/lib/lib/screens/tivo/tivo_screens.rb +44 -0
- data/lib/lib/selenium/appium/appium.rb +388 -0
- data/lib/lib/selenium/selenium.rb +466 -0
- data/lib/lib/selenium/webdriver/webdriver.rb +254 -0
- data/lib/lib/test_case/boilerplate/functional.rb +7 -0
- data/lib/lib/test_case/boilerplate/performance.rb +7 -0
- data/lib/lib/test_case/ci_test.rb +47 -0
- data/lib/lib/test_case/functional_test_case.rb +27 -0
- data/lib/lib/test_case/make_boilerplate.rb +32 -0
- data/lib/lib/test_case/monitoring/apple_monitor.rb +104 -0
- data/lib/lib/test_case/monitoring/base_monitor.rb +140 -0
- data/lib/lib/test_case/monitoring/dta_monitor.rb +53 -0
- data/lib/lib/test_case/monitoring/iguide_monitor.rb +72 -0
- data/lib/lib/test_case/monitoring/mdn_monitor.rb +28 -0
- data/lib/lib/test_case/monitoring/monitoring_test.rb +111 -0
- data/lib/lib/test_case/monitoring/odn_monitor.rb +137 -0
- data/lib/lib/test_case/monitoring/passport_monitor.rb +50 -0
- data/lib/lib/test_case/monitoring/report_monitor.rb +178 -0
- data/lib/lib/test_case/monitoring/roku_monitor.rb +102 -0
- data/lib/lib/test_case/monitoring/sara_monitor.rb +33 -0
- data/lib/lib/test_case/monitoring/spec_monitor.rb +154 -0
- data/lib/lib/test_case/performance_test_case.rb +29 -0
- data/lib/lib/test_case/test_case.rb +1055 -0
- data/lib/lib/test_case/test_error.rb +29 -0
- data/lib/lib/test_case/test_exception.rb +9 -0
- data/lib/lib/test_case/test_status.rb +39 -0
- data/lib/lib/test_case/test_step.rb +156 -0
- data/lib/lib/test_case/test_trace.rb +80 -0
- data/lib/lib/test_data.rb +222 -0
- data/lib/lib/test_wrapper.rb +146 -0
- data/lib/misc/get_latest_android.sh +14 -0
- data/lib/misc/get_latest_ios.sh +14 -0
- data/lib/package-lock.json +3 -0
- data/lib/run_test.rb +4 -0
- data/lib/script_validator.rb +48 -0
- data/lib/syntax_eval.rb +151 -0
- data/lib/tools/convert_old_scripts.rb +100 -0
- data/lib/tools/find_duplicate_rois.rb +27 -0
- data/lib/tools/roku/inspector.rb +130 -0
- data/lib/tools/syntax_checker.rb +83 -0
- data/lib/upload_ref_images.rb +255 -0
- metadata +912 -0
@@ -0,0 +1,75 @@
|
|
1
|
+
#Test automation script version# TA-5.5.mdn released time stamp: 12-03-12 14:40:20
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'nokogiri'
|
5
|
+
require 'time'
|
6
|
+
require 'net/http'
|
7
|
+
require './dsllib/common/utils/tmc_utils'
|
8
|
+
|
9
|
+
# Invokes the MenuManager webservice on MAS, and returns an xml describing the access menu.
|
10
|
+
# * *Returns* :
|
11
|
+
# XML representation of the access menu, which can be passed to other methods for querying more information.
|
12
|
+
def mas_webservice_menumanager_get_access_menu
|
13
|
+
rest_url = fetch_option(:mas_menumanager_webservice_endpoint)
|
14
|
+
response = Net::HTTP.get_response(URI.parse(rest_url))
|
15
|
+
response_xml = Nokogiri::XML(response.body)
|
16
|
+
|
17
|
+
rootNode_present = response_xml.xpath("count(//menu/rootNode)").to_i.eql?(1)
|
18
|
+
tcknownissue "MBO-2134 MAS webservice not returning any data for the Access Menu tab" unless rootNode_present
|
19
|
+
|
20
|
+
return response_xml
|
21
|
+
end
|
22
|
+
|
23
|
+
# Returns the list of horizontal categories that appear in Access Menu.
|
24
|
+
# * *Args* :
|
25
|
+
# - +response_xml+ -> the access menu xml returned by mas_webservice_menumanager_get_access_menu
|
26
|
+
# * *Returns* :
|
27
|
+
# Array of strings, each of which is a category
|
28
|
+
def mas_webservice_menumanager_get_access_menu_categories response_xml
|
29
|
+
category_count = response_xml.xpath("count(//menu/rootNode/childNodes)").to_i
|
30
|
+
|
31
|
+
categories = []
|
32
|
+
category_count.times do |cat|
|
33
|
+
categories << response_xml.xpath("//menu/rootNode/childNodes[#{cat + 1}]/nodeName").inner_html
|
34
|
+
end
|
35
|
+
return categories
|
36
|
+
end
|
37
|
+
|
38
|
+
# Returns the list of submenu items for a given category in Access Menu.
|
39
|
+
# * *Args* :
|
40
|
+
# - +response_xml+ -> the access menu xml returned by mas_webservice_menumanager_get_access_menu
|
41
|
+
# - +category+ -> one of the categories returned by mas_webservice_menumanager_get_access_menu_categories
|
42
|
+
# * *Returns* :
|
43
|
+
# array of string, each of which a submenu item appearing in the specified category.
|
44
|
+
def mas_webservice_menumanager_get_access_menu_under_category response_xml, category
|
45
|
+
under_category_count = response_xml.xpath("count(//menu/rootNode/childNodes[nodeName='#{category}']/childNodes)").to_i
|
46
|
+
|
47
|
+
under_categories = []
|
48
|
+
under_category_count.times do |cat|
|
49
|
+
under_categories << response_xml.xpath("//menu/rootNode/childNodes[nodeName='#{category}']/childNodes[#{cat + 1}]/nodeName").inner_html
|
50
|
+
end
|
51
|
+
return under_categories
|
52
|
+
end
|
53
|
+
|
54
|
+
def mas_webservice_menumanager_get_access_menu_fod_assets response_xml, category = 'Free On Demand'
|
55
|
+
fod_category_count = response_xml.xpath("count(//menu/rootNode/childNodes[nodeName='#{category}']/childNodes)").to_i
|
56
|
+
|
57
|
+
fod_categories = Hash.new
|
58
|
+
fod_category_count.times do |cat|
|
59
|
+
node_status = response_xml.xpath("//menu/rootNode/childNodes[nodeName='#{category}']/childNodes[#{cat + 1}]/nodeStatus").inner_html
|
60
|
+
if node_status == 'VALID'
|
61
|
+
fod_category = response_xml.xpath("//menu/rootNode/childNodes[nodeName='#{category}']/childNodes[#{cat + 1}]/nodeName").inner_html
|
62
|
+
fod_assets = []
|
63
|
+
fod_asset_count = response_xml.xpath("count(//menu/rootNode/childNodes[nodeName='#{category}']/childNodes[#{cat + 1}]/childNodes)").to_i
|
64
|
+
fod_asset_count.times do |asset_count|
|
65
|
+
asset_status = response_xml.xpath("//menu/rootNode/childNodes[nodeName='#{category}']/childNodes[#{cat + 1}]/childNodes[#{asset_count + 1}]/nodeStatus").inner_html
|
66
|
+
if asset_status == 'VALID'
|
67
|
+
fod_assets << response_xml.xpath("//menu/rootNode/childNodes[nodeName='#{category}']/childNodes[#{cat + 1}]/childNodes[#{asset_count + 1}]/nodeName").inner_html
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
fod_categories[fod_category] = fod_assets
|
72
|
+
end
|
73
|
+
end
|
74
|
+
return fod_categories
|
75
|
+
end
|
@@ -0,0 +1,540 @@
|
|
1
|
+
#Test automation script version# TA-5.5.mdn released time stamp: 12-03-12 14:40:20
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'savon'
|
5
|
+
require 'nokogiri'
|
6
|
+
require 'time'
|
7
|
+
require './dsllib/common/utils/tmc_utils'
|
8
|
+
|
9
|
+
# Invokes the OnDemand webservice on MAS, and returns the catalog of the specified service as xml.
|
10
|
+
# * *Args* :
|
11
|
+
# - +service_name+ -> name of the service, examples MOD, ShowtimeonDemand
|
12
|
+
# * *Returns* :
|
13
|
+
# XML representation of the catalogue, which can be passed to other methods for querying more information.
|
14
|
+
def mas_webservice_ondemand_get_catalogue_for_service service_name
|
15
|
+
document = "#{fetch_option(:mas_ondemand_webservice_endpoint)}?wsdl"
|
16
|
+
end_point = "#{fetch_option(:mas_ondemand_webservice_endpoint)}"
|
17
|
+
client = Savon::Client.new do
|
18
|
+
wsdl.document = document
|
19
|
+
wsdl.endpoint = end_point
|
20
|
+
wsdl.namespace = "http://ondemand.ws.server.atgw.twc.com/"
|
21
|
+
end
|
22
|
+
|
23
|
+
response = client.request :getCatalogForService do
|
24
|
+
soap.body = "<arg0>#{service_name}</arg0>"
|
25
|
+
end
|
26
|
+
|
27
|
+
resp_xml = Nokogiri::XML(response.to_xml)
|
28
|
+
return resp_xml
|
29
|
+
end
|
30
|
+
|
31
|
+
# Returns the categories that appear in horizontal tab
|
32
|
+
# * *Args* :
|
33
|
+
# - +response_xml+ -> xml returned by the mas_webservice_ondemand_get_catalogue_for_service method
|
34
|
+
# * *Returns* :
|
35
|
+
# array of strings, each of which is a category.
|
36
|
+
def mas_webservice_ondemand_get_categories response_xml
|
37
|
+
category_count = response_xml.xpath("count(//return/service/category)").to_i
|
38
|
+
loginfo2 "No of categories are: #{category_count}"
|
39
|
+
|
40
|
+
categories = []
|
41
|
+
category_count.times do |count|
|
42
|
+
categories << response_xml.xpath("//return/service/category[#{count + 1}]/name").inner_html.gsub('&','&')
|
43
|
+
end
|
44
|
+
|
45
|
+
return categories
|
46
|
+
end
|
47
|
+
|
48
|
+
# Array of offering objects. An offering object is an array containing information about the OD asset in the following order
|
49
|
+
# ID, Title, Rental Window (in hrs), Price.
|
50
|
+
# * *Args* :
|
51
|
+
# - +response_xml+ -> the xml returned by the mas_webservice_ondemand_get_catalogue_for_service method.
|
52
|
+
# - +category+ -> name of a horizontal tab
|
53
|
+
# * *Returns* :
|
54
|
+
# An array of offerings, an offering is also an array.
|
55
|
+
def offerings_under_category response_xml, category
|
56
|
+
offering_count = response_xml.xpath("count(//return/service/category[name=\"#{category}\"]/offeringID)").to_i
|
57
|
+
loginfo2 "Offerings in #{category} are #{offering_count}"
|
58
|
+
|
59
|
+
offerings = []
|
60
|
+
offering_count.times do |off_count|
|
61
|
+
offering = []
|
62
|
+
asset_id = response_xml.xpath("//return/service/category[name=\"#{category}\"]/offeringID[#{off_count + 1}]/ID").inner_html
|
63
|
+
offering << asset_id
|
64
|
+
offering << response_xml.xpath("//return/service/category[name=\"#{category}\"]/offeringID[#{off_count + 1}]/title").inner_html
|
65
|
+
offering << response_xml.xpath("//return/service/category[name=\"#{category}\"]/offeringID[#{off_count + 1}]/rentalWindowInHours").inner_html
|
66
|
+
offering << response_xml.xpath("//return/service/category[name=\"#{category}\"]/offeringID[#{off_count + 1}]/price").inner_html
|
67
|
+
|
68
|
+
# rating
|
69
|
+
offering_node = response_xml.xpath("//return/offering[id=\"#{asset_id}\"]")
|
70
|
+
offering << offering_node.xpath("./title/rating").inner_html
|
71
|
+
|
72
|
+
# genres
|
73
|
+
genres_list = []
|
74
|
+
genres_nodes = offering_node.xpath("./title//genres")
|
75
|
+
genres_nodes.each {|node|
|
76
|
+
genres_list.push(node.text)
|
77
|
+
}
|
78
|
+
# push genre list to offering array
|
79
|
+
offering << genres_list
|
80
|
+
|
81
|
+
# Closed Caption closedCaptioned
|
82
|
+
closedCaptioned = Boolean(offering_node.xpath("./closedCaptioned").text.to_s)
|
83
|
+
offering << closedCaptioned
|
84
|
+
|
85
|
+
offerings << offering
|
86
|
+
end
|
87
|
+
|
88
|
+
return offerings
|
89
|
+
end
|
90
|
+
|
91
|
+
# Private method
|
92
|
+
# Use it to get asset hash (details) from response xml
|
93
|
+
def _od_asset_details_hash response_xml, asset_id
|
94
|
+
asset_node = response_xml.xpath("//return/offering[id='#{asset_id}']")
|
95
|
+
|
96
|
+
asset_id = asset_node.xpath("./id").inner_html
|
97
|
+
asset_price = asset_node.xpath("./price").inner_html.to_s.to_f
|
98
|
+
asset_title = asset_node.xpath("./title/title").inner_html.to_s.gsub('&','&')
|
99
|
+
asset_rating = asset_node.xpath("./title/rating").inner_html.to_s
|
100
|
+
asset_desc = asset_node.xpath("./title/description").inner_html.to_s.gsub('&','&')
|
101
|
+
|
102
|
+
window_start = asset_node.xpath("./title/licensingWindowStart").inner_html
|
103
|
+
window_end = asset_node.xpath("./title/licensingWindowEnd").inner_html
|
104
|
+
window_start_time = nil
|
105
|
+
window_end_time = nil
|
106
|
+
# TODO : fix me - error for long windows start/end time : RangeError: bignum too big to convert into `long'
|
107
|
+
begin
|
108
|
+
# Divided by 1000 because the times are in milliseconds.
|
109
|
+
window_start_time = Time.at(window_start.to_i / 1000)
|
110
|
+
window_end_time = Time.at(window_end.to_i / 1000)
|
111
|
+
rescue StandardError => e
|
112
|
+
loginfo2 "Warning : licensingWindowStart : #{window_start}"
|
113
|
+
loginfo2 "Warning : licensingWindowEnd : #{window_end}"
|
114
|
+
window_start_time = Time.at(window_start[0..10].to_i)
|
115
|
+
window_end_time = Time.at(window_end[0..10].to_i)
|
116
|
+
end
|
117
|
+
|
118
|
+
# genres
|
119
|
+
genres_list = []
|
120
|
+
genres_nodes = asset_node.xpath("./title//genres")
|
121
|
+
genres_nodes.each {|node|
|
122
|
+
genres_list.push(node.text)
|
123
|
+
}
|
124
|
+
# Closed Caption
|
125
|
+
asset_cc = Boolean(asset_node.xpath("./closedCaptioned").text.to_s)
|
126
|
+
# duration in seconds
|
127
|
+
duration = asset_node.xpath("./movie/durationInSeconds").text.to_s.to_i
|
128
|
+
|
129
|
+
# HD content
|
130
|
+
hd = Boolean(asset_node.xpath("./movie/HDContent").text.to_s)
|
131
|
+
|
132
|
+
# get cancellation window in minutes
|
133
|
+
cancellation_window_in_minutes = response_xml.xpath("//return/service/cancellationWindowInMinutes").inner_html.to_s.to_i
|
134
|
+
|
135
|
+
# preview available
|
136
|
+
preview_available = true
|
137
|
+
preview_available = false if asset_node.xpath("./preview").empty?
|
138
|
+
preview_duration = preview_available ? asset_node.xpath("./preview/durationInSeconds").text.to_s.to_i : 0
|
139
|
+
|
140
|
+
asset_hash = {
|
141
|
+
:id => asset_id,
|
142
|
+
:title => asset_title,
|
143
|
+
:desc => asset_desc,
|
144
|
+
:price => asset_price,
|
145
|
+
:rating => asset_rating,
|
146
|
+
:licence_start => window_start_time,
|
147
|
+
:licence_end => window_end_time,
|
148
|
+
:length => duration,
|
149
|
+
:genres => genres_list,
|
150
|
+
:cc => asset_cc,
|
151
|
+
:preview_available => preview_available,
|
152
|
+
:preview_length => preview_duration,
|
153
|
+
:cancellation_window_in_minutes => cancellation_window_in_minutes,
|
154
|
+
:hd =>hd,
|
155
|
+
:categories => []
|
156
|
+
}
|
157
|
+
|
158
|
+
return asset_hash
|
159
|
+
end
|
160
|
+
|
161
|
+
# Private method
|
162
|
+
# Use it to get all assets list form given node and its child nodes
|
163
|
+
def _od_categories_and_assets_under_category response_xml, category_node, parent_categories = [], current_time = mas_current_date, hd =stb_capable_of?('HD')
|
164
|
+
|
165
|
+
list = []
|
166
|
+
# all assets from the category
|
167
|
+
assets_nodes = category_node.xpath("./offeringID")
|
168
|
+
order_counter = 0
|
169
|
+
if assets_nodes.length>0
|
170
|
+
assets_nodes.each {|asset_node|
|
171
|
+
a_id = asset_node.xpath("./ID").inner_html # Asset ID
|
172
|
+
|
173
|
+
od_asset_details = _od_asset_details_hash(response_xml,a_id) # Asset details
|
174
|
+
|
175
|
+
# append rental window in hours
|
176
|
+
rental_window_in_hours = asset_node.xpath("./rentalWindowInHours").inner_html.to_s.to_i # Rental Window
|
177
|
+
od_asset_details[:rental_hours] = rental_window_in_hours
|
178
|
+
|
179
|
+
#Exclude assets if unwanted
|
180
|
+
next if od_asset_details[:licence_end] < current_time or od_asset_details[:licence_start] > current_time # Do not use expired asset / inactive asset
|
181
|
+
next if od_asset_details[:hd] and !hd # Exclude HD assets for non HD boxes
|
182
|
+
|
183
|
+
# asset asset id and order to category list for navigation
|
184
|
+
od_asset_details[:categories].push(parent_categories + [[order_counter, a_id]])
|
185
|
+
|
186
|
+
# add details hash in the array of all assets
|
187
|
+
list.push(od_asset_details)
|
188
|
+
|
189
|
+
# increment asset order counter
|
190
|
+
order_counter+= 1
|
191
|
+
}
|
192
|
+
end
|
193
|
+
|
194
|
+
# assets and categories from sub categories
|
195
|
+
subcategory_nodes = category_node.xpath("./category")
|
196
|
+
if subcategory_nodes.length > 0
|
197
|
+
subcategory_nodes.each {|subcat_node|
|
198
|
+
node = subcat_node
|
199
|
+
subcat_order = order_counter
|
200
|
+
subcat_title = subcat_node.xpath("./name").inner_html.gsub('&','&')
|
201
|
+
|
202
|
+
list_from_sub_cat = _od_categories_and_assets_under_category(response_xml,subcat_node,(parent_categories + [[subcat_order, subcat_title]]), current_time,hd)
|
203
|
+
next if list_from_sub_cat.empty?
|
204
|
+
list = list + list_from_sub_cat
|
205
|
+
order_counter+= 1
|
206
|
+
}
|
207
|
+
end
|
208
|
+
return list
|
209
|
+
end
|
210
|
+
|
211
|
+
# Use it to get all assets list for either all categories or specific category
|
212
|
+
# * *Args* :
|
213
|
+
# - +response_xml+ -> the xml returned by the mas_webservice_ondemand_get_catalogue_for_service method.
|
214
|
+
# - +category+ -> name of a horizontal tab
|
215
|
+
# * *Returns* :
|
216
|
+
# An array of od assets each asset is hash map
|
217
|
+
def od_assets_from_catalogue response_xml, category=""
|
218
|
+
assets_list = []
|
219
|
+
# get horizontal categories
|
220
|
+
assets_nodes = response_xml.xpath("//return/offering")
|
221
|
+
loginfo2 "Total assets : #{assets_nodes.length}"
|
222
|
+
|
223
|
+
loginfo2 "Fetching OD assets from response XML, Please wait ..."
|
224
|
+
|
225
|
+
current_time = mas_current_date
|
226
|
+
|
227
|
+
if category.empty? # All categories
|
228
|
+
horizontal_tabs_node = response_xml.xpath("//return/service")
|
229
|
+
assets_list = _od_categories_and_assets_under_category(response_xml,horizontal_tabs_node, [], current_time)
|
230
|
+
else
|
231
|
+
category.strip! # remove extra spaces
|
232
|
+
horizontal_tab_node = response_xml.xpath("//return/service/category[name=\"#{category}\"]")
|
233
|
+
assets_list = _od_categories_and_assets_under_category(response_xml,horizontal_tab_node, [[0, category]], current_time)
|
234
|
+
end
|
235
|
+
|
236
|
+
loginfo2 "Finished fetching OD assets from response XML"
|
237
|
+
|
238
|
+
loginfo2 "No assets available under given category" if assets_list.empty?
|
239
|
+
|
240
|
+
return assets_list # return assets list
|
241
|
+
end
|
242
|
+
|
243
|
+
# Use it to get the duration of the OD asset (in seconds)
|
244
|
+
# * *Args* :
|
245
|
+
# - +response_xml+ -> the xml returned by the mas_webservice_ondemand_get_catalogue_for_service method.
|
246
|
+
# - +asset_title+ -> The title of the asset as obtained from the list of offerings returned by offerings_under_category method.
|
247
|
+
# * *Returns* :
|
248
|
+
# The duration of the OD asset in seconds.
|
249
|
+
def get_od_asset_length (response_xml, asset_id)
|
250
|
+
title_node = response_xml.xpath("//return/offering[id=\"#{asset_id}\"]")
|
251
|
+
movie_node = title_node[0].next_sibling
|
252
|
+
asset_length = movie_node.xpath(".//durationInSeconds").inner_html
|
253
|
+
return asset_length
|
254
|
+
end
|
255
|
+
|
256
|
+
# Use it to get the license window of the OD asset.
|
257
|
+
# * *Args* :
|
258
|
+
# - +response_xml+ -> the xml returned by the mas_webservice_ondemand_get_catalogue_for_service method.
|
259
|
+
# - +asset_title+ -> The title of the asset as obtained from the list of offerings returned by offerings_under_category method.
|
260
|
+
# * *Returns* :
|
261
|
+
# The start and end dates of the license window
|
262
|
+
def get_od_asset_licence_window (response_xml, asset_id)
|
263
|
+
title_node = response_xml.xpath("//return/offering[id=\"#{asset_id}\"]")
|
264
|
+
window_start = title_node.xpath(".//licensingWindowStart").inner_html
|
265
|
+
window_end = title_node.xpath(".//licensingWindowEnd").inner_html
|
266
|
+
# TODO : fix me - error for long windows start/end time : RangeError: bignum too big to convert into `long'
|
267
|
+
begin
|
268
|
+
# Divided by 1000 because the times are in milliseconds.
|
269
|
+
return [Time.at(window_start.to_i / 1000), Time.at(window_end.to_i / 1000)]
|
270
|
+
rescue StandardError => e
|
271
|
+
loginfo2 "Warning : licensingWindowStart : #{window_start}"
|
272
|
+
loginfo2 "Warning : licensingWindowEnd : #{window_end}"
|
273
|
+
return [Time.at(window_start[0..10].to_i), Time.at(window_end[0..10].to_i)]
|
274
|
+
end
|
275
|
+
end
|
276
|
+
|
277
|
+
# Use it to know the resultCode of invoking getCurrentRecordingPlaybackStatus for a STB.
|
278
|
+
# * *Args* :
|
279
|
+
# - +mac_addr+ -> the DVR stb for which we are querying.
|
280
|
+
# * *Returns* :
|
281
|
+
# A Hash with following keys
|
282
|
+
# :resultCode (if operation completed successfully).
|
283
|
+
# :playMode
|
284
|
+
# :mediaTime
|
285
|
+
# :event, OR
|
286
|
+
# :faultString (in case of SOAP fault)
|
287
|
+
def mas_webservice_rdvr_status_of_current_active_playback mac_addr
|
288
|
+
client = Savon::Client.new do
|
289
|
+
wsdl.document = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}?wsdl"
|
290
|
+
wsdl.endpoint = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}"
|
291
|
+
wsdl.namespace = "http://remotedvr.ws.server.atgw.twc.com/"
|
292
|
+
end
|
293
|
+
|
294
|
+
response_obj = Hash.new
|
295
|
+
begin
|
296
|
+
response = client.request :getCurrentRecordingPlaybackStatus do
|
297
|
+
soap.body = "<mac>#{mac_addr}</mac>"
|
298
|
+
end
|
299
|
+
|
300
|
+
resp_xml = Nokogiri::XML(response.to_xml)
|
301
|
+
logdebug "Response: #{resp_xml}"
|
302
|
+
|
303
|
+
response_obj[:mediaTime] = resp_xml.xpath('//result/mediaTime').inner_html
|
304
|
+
response_obj[:playMode] = resp_xml.xpath('//result/playMode').inner_html
|
305
|
+
result_code = resp_xml.xpath('//result/resultCode').inner_html
|
306
|
+
loginfo2 "Result Code : [#{result_code}]"
|
307
|
+
response_obj[:resultCode] = result_code
|
308
|
+
|
309
|
+
event_count = resp_xml.xpath('count(//result/event)')
|
310
|
+
if (event_count != 0)
|
311
|
+
event = Hash.new
|
312
|
+
event[:categoryType] = resp_xml.xpath("//result/event/categoryType").inner_html
|
313
|
+
event[:episodeId] = resp_xml.xpath("//result/event/episodeId").inner_html.to_i
|
314
|
+
event[:eventId] = resp_xml.xpath("//result/event/eventId").inner_html.to_i
|
315
|
+
event[:eventType] = resp_xml.xpath("//result/event/eventType").inner_html
|
316
|
+
event[:startTime] = resp_xml.xpath("//result/event/startTime").inner_html.to_i
|
317
|
+
event[:svcId] = resp_xml.xpath("//result/event/svcId").inner_html.to_i
|
318
|
+
|
319
|
+
response_obj[:event] = event
|
320
|
+
end
|
321
|
+
|
322
|
+
rescue Savon::SOAP::Fault => fault
|
323
|
+
loginfo2 "Fault String #{fault.to_s}"
|
324
|
+
response_obj[:faultString] = fault.to_s
|
325
|
+
end
|
326
|
+
return response_obj
|
327
|
+
end
|
328
|
+
|
329
|
+
# Use it to get the DVR utilization on the specified STB
|
330
|
+
# * *Args* :
|
331
|
+
# - +mac_addr+ -> the DVR stb for which we are querying
|
332
|
+
# * *Returns* :
|
333
|
+
# Hash with keys
|
334
|
+
# :usedSpace -> bytes occupied by recordings
|
335
|
+
# :freeSpace -> bytes left for recordings
|
336
|
+
# :SDBytesRecorded -> bytes occupied by SD recordings
|
337
|
+
# :HDBytesRecorded -> bytes occupied by HD recordings
|
338
|
+
# :SDMinutesRecorded -> total time of SD recordings
|
339
|
+
# :HDMinutesRecorded -> total time of HD recordings
|
340
|
+
def mas_webservice_rdvr_get_dvr_utilization mac_addr
|
341
|
+
client = Savon::Client.new do
|
342
|
+
wsdl.document = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}?wsdl"
|
343
|
+
wsdl.endpoint = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}"
|
344
|
+
wsdl.namespace = "http://remotedvr.ws.server.atgw.twc.com/"
|
345
|
+
end
|
346
|
+
|
347
|
+
begin
|
348
|
+
response = client.request :getDVRUtilization do
|
349
|
+
soap.body = "<mac>#{mac_addr}</mac>"
|
350
|
+
end
|
351
|
+
|
352
|
+
resp_xml = Nokogiri::XML(response.to_xml)
|
353
|
+
logdebug "Response: #{resp_xml}"
|
354
|
+
dvr_utilization = Hash.new
|
355
|
+
|
356
|
+
dvr_utilization[:usedSpace] = resp_xml.xpath('//result/usedSpace').inner_html.to_i
|
357
|
+
dvr_utilization[:freeSpace] = resp_xml.xpath('//result/freeSpace').inner_html.to_i
|
358
|
+
dvr_utilization[:SDBytesRecorded] = resp_xml.xpath('//result/SDBytesRecorded').inner_html.to_i
|
359
|
+
dvr_utilization[:HDBytesRecorded] = resp_xml.xpath('//result/HDBytesRecorded').inner_html.to_i
|
360
|
+
dvr_utilization[:SDMinutesRecorded] = resp_xml.xpath('//result/SDMinutesRecorded').inner_html.to_i
|
361
|
+
dvr_utilization[:HDMinutesRecorded] = resp_xml.xpath('//result/HDMinutesRecorded').inner_html.to_i
|
362
|
+
|
363
|
+
return dvr_utilization
|
364
|
+
rescue Savon::SOAP::Fault => fault
|
365
|
+
logdebug "Fault String #{fault.to_s}"
|
366
|
+
end
|
367
|
+
end
|
368
|
+
|
369
|
+
# Use it to determine the existing recording events on the specified STB.
|
370
|
+
# * *Args* :
|
371
|
+
# - +mac_addr+ -> mac address of the STB
|
372
|
+
# - +start_index+ -> start index for the list of programs
|
373
|
+
# - +max_event_count+ -> maximum number of events to be returned in this query
|
374
|
+
# * *Returns* :
|
375
|
+
# Array of events, each event is a hash containing following keys
|
376
|
+
# :categoryType
|
377
|
+
# :episodeId
|
378
|
+
# :eventId
|
379
|
+
# :eventType
|
380
|
+
# :startTime
|
381
|
+
# :svcId
|
382
|
+
def mas_webservice_rdvr_get_recorded_events mac_addr, start_index, max_event_count
|
383
|
+
client = Savon::Client.new do
|
384
|
+
wsdl.document = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}?wsdl"
|
385
|
+
wsdl.endpoint = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}"
|
386
|
+
wsdl.namespace = "http://remotedvr.ws.server.atgw.twc.com/"
|
387
|
+
end
|
388
|
+
|
389
|
+
begin
|
390
|
+
response = client.request :getRecordedEvents do
|
391
|
+
soap.body = "<mac>#{mac_addr}</mac>"
|
392
|
+
soap.body << "<startIndex>#{start_index}</startIndex>"
|
393
|
+
soap.body << "<maxEventCount>#{max_event_count}</maxEventCount>"
|
394
|
+
end
|
395
|
+
|
396
|
+
resp_xml = Nokogiri::XML(response.to_xml)
|
397
|
+
logdebug "Response: #{resp_xml}"
|
398
|
+
events_returned = resp_xml.xpath("//RecordedEvents/returnedEventCount").inner_html.to_i
|
399
|
+
events = []
|
400
|
+
|
401
|
+
events_returned.times do |event_count|
|
402
|
+
event = Hash.new
|
403
|
+
event[:categoryType] = resp_xml.xpath("//RecordedEvents/returnedEvents[#{event_count + 1}]/event/categoryType").inner_html
|
404
|
+
event[:episodeId] = resp_xml.xpath("//RecordedEvents/returnedEvents[#{event_count + 1}]/event/episodeId").inner_html.to_i
|
405
|
+
event[:eventId] = resp_xml.xpath("//RecordedEvents/returnedEvents[#{event_count + 1}]/event/eventId").inner_html.to_i
|
406
|
+
event[:eventType] = resp_xml.xpath("//RecordedEvents/returnedEvents[#{event_count + 1}]/event/eventType").inner_html
|
407
|
+
event[:startTime] = resp_xml.xpath("//RecordedEvents/returnedEvents[#{event_count + 1}]/event/startTime").inner_html.to_i
|
408
|
+
event[:svcId] = resp_xml.xpath("//RecordedEvents/returnedEvents[#{event_count + 1}]/event/svcId").inner_html.to_i
|
409
|
+
|
410
|
+
events << event
|
411
|
+
end
|
412
|
+
|
413
|
+
return events
|
414
|
+
rescue Savon::SOAP::Fault => fault
|
415
|
+
logdebug "Fault String #{fault.to_s}"
|
416
|
+
return []
|
417
|
+
end
|
418
|
+
end
|
419
|
+
|
420
|
+
# Use it to fetch the resultCode on invoking the operation getSpecificRecordingPlaybackStatus for specified STB and recording event
|
421
|
+
# * *Args* :
|
422
|
+
# - +mac_addr+ -> mac address of an STB
|
423
|
+
# - +event+ -> a recording event, returned by a call to getRecordedEvents
|
424
|
+
# * *Returns* :
|
425
|
+
# the resultCode (if operation completed successfully) or the fault string (in case of SOAP fault)
|
426
|
+
def mas_webservice_rdvr_status_of_previous_inactive_playback mac_addr, event
|
427
|
+
client = Savon::Client.new do
|
428
|
+
wsdl.document = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}?wsdl"
|
429
|
+
wsdl.endpoint = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}"
|
430
|
+
wsdl.namespace = "http://remotedvr.ws.server.atgw.twc.com/"
|
431
|
+
end
|
432
|
+
|
433
|
+
begin
|
434
|
+
response = client.request :getSpecificRecordingPlaybackStatus do
|
435
|
+
soap.body = "<mac>#{mac_addr}</mac>"
|
436
|
+
soap.body << "<event>"
|
437
|
+
soap.body << "<categoryType>#{event[:categoryType]}</categoryType>"
|
438
|
+
soap.body << "<episodeId>#{event[:episodeId]}</episodeId>"
|
439
|
+
soap.body << "<eventId>#{event[:eventId]}</eventId>"
|
440
|
+
soap.body << "<eventType>#{event[:eventType]}</eventType>"
|
441
|
+
soap.body << "<startTime>#{event[:startTime]}</startTime>"
|
442
|
+
soap.body << "<svcId>#{event[:svcId]}</svcId>"
|
443
|
+
soap.body << "</event>"
|
444
|
+
end
|
445
|
+
logdebug "Response: #{response.to_xml}"
|
446
|
+
resp_xml = Nokogiri::XML(response.to_xml)
|
447
|
+
|
448
|
+
response_obj = {}
|
449
|
+
response_obj[:mediaTime] = resp_xml.xpath('//result/mediaTime').inner_html
|
450
|
+
response_obj[:playMode] = resp_xml.xpath('//result/playMode').inner_html
|
451
|
+
result_code = resp_xml.xpath('//result/resultCode').inner_html
|
452
|
+
loginfo2 "Result Code : [#{result_code}]"
|
453
|
+
response_obj[:resultCode] = result_code
|
454
|
+
|
455
|
+
return response_obj
|
456
|
+
rescue Savon::SOAP::Fault => fault
|
457
|
+
loginfo2 "Fault String #{fault.to_s}"
|
458
|
+
return fault.to_s
|
459
|
+
end
|
460
|
+
return ''
|
461
|
+
end
|
462
|
+
|
463
|
+
# Use it to jump to offset in playback of a event
|
464
|
+
# * *Args* :
|
465
|
+
# - +event+ -> a recording event, returned by a call to getRecordedEvents
|
466
|
+
# - +offset+ -> mac address of an STB
|
467
|
+
# * *Returns* :
|
468
|
+
# true if request sent successfully, else false
|
469
|
+
def mas_rdvr_jump_to_offset_in_playback_of_event event, offset = 300
|
470
|
+
begin
|
471
|
+
client = Savon::Client.new do
|
472
|
+
wsdl.document = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}?wsdl"
|
473
|
+
wsdl.endpoint = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}"
|
474
|
+
wsdl.namespace = "http://remotedvr.ws.server.atgw.twc.com/"
|
475
|
+
end
|
476
|
+
|
477
|
+
mac_addr = fetch_stb_mac_address
|
478
|
+
|
479
|
+
client.request :beginPlayAtOffsetFromBeginning do
|
480
|
+
soap.body = "<mac>#{mac_addr}</mac>"
|
481
|
+
soap.body << "<event><categoryType>#{event[:categoryType]}</categoryType><episodeId>#{event[:episodeId]}</episodeId><eventId>#{event[:eventId]}</eventId><eventType>#{event[:eventType]}</eventType><startTime>#{event[:startTime]}</startTime><svcId>#{event[:svcId]}</svcId></event>"
|
482
|
+
soap.body << "<offset>#{offset}</offset>"
|
483
|
+
end
|
484
|
+
return true
|
485
|
+
rescue Savon::SOAP::Fault => fault
|
486
|
+
logdebug "Fault String #{fault.to_s}"
|
487
|
+
return false
|
488
|
+
end
|
489
|
+
end
|
490
|
+
|
491
|
+
# Use it to get estimated deletion time of RDVR event
|
492
|
+
# * *Args* :
|
493
|
+
# - +guide_program+ -> guide program object
|
494
|
+
# * *Returns* :
|
495
|
+
# deletion time if found , else nil
|
496
|
+
def mas_rdvr_get_estimated_deletion_time_for_event guide_program
|
497
|
+
client = Savon::Client.new do
|
498
|
+
wsdl.document = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}?wsdl"
|
499
|
+
wsdl.endpoint = "#{fetch_option(:mas_remotedvr_webservice_endpoint)}"
|
500
|
+
wsdl.namespace = "http://remotedvr.ws.server.atgw.twc.com/"
|
501
|
+
end
|
502
|
+
|
503
|
+
mac_addr = fetch_stb_mac_address
|
504
|
+
start_index = 0
|
505
|
+
max_event_count = 50
|
506
|
+
|
507
|
+
begin
|
508
|
+
response = client.request :getRecordedEvents do
|
509
|
+
soap.body = "<mac>#{mac_addr}</mac>"
|
510
|
+
soap.body << "<startIndex>#{start_index}</startIndex>"
|
511
|
+
soap.body << "<maxEventCount>#{max_event_count}</maxEventCount>"
|
512
|
+
end
|
513
|
+
|
514
|
+
resp_xml = Nokogiri::XML(response.to_xml)
|
515
|
+
logdebug "Response: #{resp_xml}"
|
516
|
+
events_returned = resp_xml.xpath("//RecordedEvents/returnedEventCount").inner_html.to_i
|
517
|
+
|
518
|
+
mas_time_zone_diff = mas_conductor_time_zone_diff_in_min
|
519
|
+
program_service_id = guide_program[17].to_s.to_i
|
520
|
+
program_start_time = (guide_program[2] - (mas_time_zone_diff*60)).to_i
|
521
|
+
|
522
|
+
events_returned.times do |event_count|
|
523
|
+
next unless resp_xml.xpath("//RecordedEvents/returnedEvents[#{event_count + 1}]/event/startTime").inner_html.to_i == program_start_time
|
524
|
+
next unless resp_xml.xpath("//RecordedEvents/returnedEvents[#{event_count + 1}]/event/svcId").inner_html.to_i == program_service_id
|
525
|
+
|
526
|
+
unless resp_xml.xpath("//RecordedEvents/returnedEvents[#{event_count + 1}]/recordedEventAttributes/estimatedDeletionTime").empty?
|
527
|
+
return resp_xml.xpath("//RecordedEvents/returnedEvents[#{event_count + 1}]/recordedEventAttributes/estimatedDeletionTime").inner_html.to_i
|
528
|
+
end
|
529
|
+
|
530
|
+
loginfo2 "Estimated deletion time not found for the event"
|
531
|
+
return nil
|
532
|
+
end
|
533
|
+
|
534
|
+
loginfo2 "Event not found"
|
535
|
+
return nil
|
536
|
+
rescue Savon::SOAP::Fault => fault
|
537
|
+
logdebug "Fault String #{fault.to_s}"
|
538
|
+
return nil
|
539
|
+
end
|
540
|
+
end
|