Advertisement
ilools

pptv playlink decode

Aug 16th, 2014
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.39 KB | None | 0 0
  1. package cn.pplive.player.utils
  2. {
  3. import flash.net.*;
  4. import flash.utils.*;
  5.  
  6. public class Utils extends Object
  7. {
  8. public static var BASE64_KEY:String = "kioe257ds";
  9. private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
  10. public static var ChListId:String;
  11. public static var ChannelId:String;
  12. public static var CatalogId:String;
  13.  
  14. public function Utils()
  15. {
  16. return;
  17. }// end function
  18.  
  19. public static function decodePlayLink(param1:String = "") : void
  20. {
  21. var _loc_6:* = null;
  22. param1 = param1.replace(/pptv:\/\/([^\/]+)\.*/, "$1");
  23. var _loc_2:* = new URLVariables(decodeBase64(param1, "pplive"));
  24. var _loc_3:* = "-1";
  25. var _loc_4:* = "-1";
  26. var _loc_5:* = "0";
  27. for (_loc_6 in _loc_2)
  28. {
  29.  
  30. switch(_loc_6.toString())
  31. {
  32. case "a":
  33. {
  34. _loc_3 = _loc_2[_loc_6].toString();
  35. ChListId = _loc_3;
  36. break;
  37. }
  38. case "b":
  39. {
  40. CatalogId = _loc_2[_loc_6].toString();
  41. break;
  42. }
  43. case "c":
  44. {
  45. _loc_5 = _loc_2[_loc_6].toString();
  46. break;
  47. }
  48. case "d":
  49. {
  50. _loc_4 = _loc_2[_loc_6].toString();
  51. break;
  52. }
  53. default:
  54. {
  55. break;
  56. }
  57. }
  58. }
  59. if (_loc_5 == "0")
  60. {
  61. ChannelId = _loc_3;
  62. }
  63. else
  64. {
  65. ChannelId = _loc_4;
  66. }
  67. return;
  68. }// end function
  69.  
  70. public static function decodeBase64(param1:String, param2:String = null) : String
  71. {
  72. if (!param2)
  73. {
  74. param2 = BASE64_KEY;
  75. }
  76. var _loc_3:* = new ByteArray();
  77. _loc_3 = decodeToByteArray(param1);
  78. _loc_3.position = 0;
  79. var _loc_4:* = new ByteArray();
  80. _loc_4.length = _loc_3.length;
  81. _loc_4.position = 0;
  82. var _loc_5:* = new ByteArray();
  83. _loc_5.writeUTFBytes(param2);
  84. _loc_5.position = 0;
  85. var _loc_6:* = 0;
  86. while (_loc_6 < _loc_3.length)
  87. {
  88.  
  89. _loc_4[_loc_6] = _loc_3[_loc_6] - _loc_5[_loc_6 % _loc_5.length];
  90. _loc_6 = _loc_6 + 1;
  91. }
  92. _loc_4.position = 0;
  93. return _loc_4.readUTFBytes(_loc_4.bytesAvailable);
  94. }// end function
  95.  
  96. public static function decodeToByteArray(param1:String) : ByteArray
  97. {
  98. var _loc_6:* = 0;
  99. var _loc_7:* = 0;
  100. var _loc_2:* = new ByteArray();
  101. var _loc_3:* = new Array(4);
  102. var _loc_4:* = new Array(3);
  103. var _loc_5:* = 0;
  104. while (_loc_5 < param1.length)
  105. {
  106.  
  107. _loc_6 = 0;
  108. while (_loc_6 < 4 && _loc_5 + _loc_6 < param1.length)
  109. {
  110.  
  111. _loc_3[_loc_6] = BASE64_CHARS.indexOf(param1.charAt(_loc_5 + _loc_6));
  112. _loc_6 = _loc_6 + 1;
  113. }
  114. _loc_4[0] = (_loc_3[0] << 2) + ((_loc_3[1] & 48) >> 4);
  115. _loc_4[1] = ((_loc_3[1] & 15) << 4) + ((_loc_3[2] & 60) >> 2);
  116. _loc_4[2] = ((_loc_3[2] & 3) << 6) + _loc_3[3];
  117. _loc_7 = 0;
  118. while (_loc_7 < _loc_4.length)
  119. {
  120.  
  121. if (_loc_3[(_loc_7 + 1)] == 64)
  122. {
  123. break;
  124. }
  125. _loc_2.writeByte(_loc_4[_loc_7]);
  126. _loc_7 = _loc_7 + 1;
  127. }
  128. _loc_5 = _loc_5 + 4;
  129. }
  130. _loc_2.position = 0;
  131. return _loc_2;
  132. }// end function
  133.  
  134. }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement