SearchMediaResult.cc 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. /*
  2. * Copyright 2009-2017 Alibaba Cloud All rights reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #include <alibabacloud/vod/model/SearchMediaResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::Vod;
  19. using namespace AlibabaCloud::Vod::Model;
  20. SearchMediaResult::SearchMediaResult() :
  21. ServiceResult()
  22. {}
  23. SearchMediaResult::SearchMediaResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. SearchMediaResult::~SearchMediaResult()
  29. {}
  30. void SearchMediaResult::parse(const std::string &payload)
  31. {
  32. Json::Reader reader;
  33. Json::Value value;
  34. reader.parse(payload, value);
  35. setRequestId(value["RequestId"].asString());
  36. auto allMediaList = value["MediaList"]["Media"];
  37. for (auto value : allMediaList)
  38. {
  39. Media mediaListObject;
  40. if(!value["MediaType"].isNull())
  41. mediaListObject.mediaType = value["MediaType"].asString();
  42. if(!value["CreationTime"].isNull())
  43. mediaListObject.creationTime = value["CreationTime"].asString();
  44. if(!value["MediaId"].isNull())
  45. mediaListObject.mediaId = value["MediaId"].asString();
  46. auto videoNode = value["Video"];
  47. if(!videoNode["VideoId"].isNull())
  48. mediaListObject.video.videoId = videoNode["VideoId"].asString();
  49. if(!videoNode["MediaSource"].isNull())
  50. mediaListObject.video.mediaSource = videoNode["MediaSource"].asString();
  51. if(!videoNode["MediaType"].isNull())
  52. mediaListObject.video.mediaType = videoNode["MediaType"].asString();
  53. if(!videoNode["Title"].isNull())
  54. mediaListObject.video.title = videoNode["Title"].asString();
  55. if(!videoNode["Tags"].isNull())
  56. mediaListObject.video.tags = videoNode["Tags"].asString();
  57. if(!videoNode["Status"].isNull())
  58. mediaListObject.video.status = videoNode["Status"].asString();
  59. if(!videoNode["Size"].isNull())
  60. mediaListObject.video.size = std::stol(videoNode["Size"].asString());
  61. if(!videoNode["Duration"].isNull())
  62. mediaListObject.video.duration = std::stof(videoNode["Duration"].asString());
  63. if(!videoNode["Description"].isNull())
  64. mediaListObject.video.description = videoNode["Description"].asString();
  65. if(!videoNode["ModificationTime"].isNull())
  66. mediaListObject.video.modificationTime = videoNode["ModificationTime"].asString();
  67. if(!videoNode["CreationTime"].isNull())
  68. mediaListObject.video.creationTime = videoNode["CreationTime"].asString();
  69. if(!videoNode["CoverURL"].isNull())
  70. mediaListObject.video.coverURL = videoNode["CoverURL"].asString();
  71. if(!videoNode["CateId"].isNull())
  72. mediaListObject.video.cateId = std::stol(videoNode["CateId"].asString());
  73. if(!videoNode["CateName"].isNull())
  74. mediaListObject.video.cateName = videoNode["CateName"].asString();
  75. if(!videoNode["DownloadSwitch"].isNull())
  76. mediaListObject.video.downloadSwitch = videoNode["DownloadSwitch"].asString();
  77. if(!videoNode["PreprocessStatus"].isNull())
  78. mediaListObject.video.preprocessStatus = videoNode["PreprocessStatus"].asString();
  79. if(!videoNode["StorageLocation"].isNull())
  80. mediaListObject.video.storageLocation = videoNode["StorageLocation"].asString();
  81. if(!videoNode["RegionId"].isNull())
  82. mediaListObject.video.regionId = videoNode["RegionId"].asString();
  83. if(!videoNode["TranscodeMode"].isNull())
  84. mediaListObject.video.transcodeMode = videoNode["TranscodeMode"].asString();
  85. auto allSnapshots = videoNode["Snapshots"]["Snapshot"];
  86. for (auto value : allSnapshots)
  87. mediaListObject.video.snapshots.push_back(value.asString());
  88. auto allSpriteSnapshots = videoNode["SpriteSnapshots"]["SpriteSnapshot"];
  89. for (auto value : allSpriteSnapshots)
  90. mediaListObject.video.spriteSnapshots.push_back(value.asString());
  91. auto audioNode = value["Audio"];
  92. if(!audioNode["AudioId"].isNull())
  93. mediaListObject.audio.audioId = audioNode["AudioId"].asString();
  94. if(!audioNode["MediaSource"].isNull())
  95. mediaListObject.audio.mediaSource = audioNode["MediaSource"].asString();
  96. if(!audioNode["Title"].isNull())
  97. mediaListObject.audio.title = audioNode["Title"].asString();
  98. if(!audioNode["Tags"].isNull())
  99. mediaListObject.audio.tags = audioNode["Tags"].asString();
  100. if(!audioNode["Status"].isNull())
  101. mediaListObject.audio.status = audioNode["Status"].asString();
  102. if(!audioNode["Size"].isNull())
  103. mediaListObject.audio.size = std::stol(audioNode["Size"].asString());
  104. if(!audioNode["Duration"].isNull())
  105. mediaListObject.audio.duration = std::stof(audioNode["Duration"].asString());
  106. if(!audioNode["Description"].isNull())
  107. mediaListObject.audio.description = audioNode["Description"].asString();
  108. if(!audioNode["ModificationTime"].isNull())
  109. mediaListObject.audio.modificationTime = audioNode["ModificationTime"].asString();
  110. if(!audioNode["CreationTime"].isNull())
  111. mediaListObject.audio.creationTime = audioNode["CreationTime"].asString();
  112. if(!audioNode["CoverURL"].isNull())
  113. mediaListObject.audio.coverURL = audioNode["CoverURL"].asString();
  114. if(!audioNode["CateId"].isNull())
  115. mediaListObject.audio.cateId = std::stol(audioNode["CateId"].asString());
  116. if(!audioNode["CateName"].isNull())
  117. mediaListObject.audio.cateName = audioNode["CateName"].asString();
  118. if(!audioNode["DownloadSwitch"].isNull())
  119. mediaListObject.audio.downloadSwitch = audioNode["DownloadSwitch"].asString();
  120. if(!audioNode["PreprocessStatus"].isNull())
  121. mediaListObject.audio.preprocessStatus = audioNode["PreprocessStatus"].asString();
  122. if(!audioNode["StorageLocation"].isNull())
  123. mediaListObject.audio.storageLocation = audioNode["StorageLocation"].asString();
  124. if(!audioNode["RegionId"].isNull())
  125. mediaListObject.audio.regionId = audioNode["RegionId"].asString();
  126. if(!audioNode["TranscodeMode"].isNull())
  127. mediaListObject.audio.transcodeMode = audioNode["TranscodeMode"].asString();
  128. auto allSnapshots1 = audioNode["Snapshots"]["Snapshot"];
  129. for (auto value : allSnapshots1)
  130. mediaListObject.audio.snapshots1.push_back(value.asString());
  131. auto allSpriteSnapshots2 = audioNode["SpriteSnapshots"]["SpriteSnapshot"];
  132. for (auto value : allSpriteSnapshots2)
  133. mediaListObject.audio.spriteSnapshots2.push_back(value.asString());
  134. auto imageNode = value["Image"];
  135. if(!imageNode["Title"].isNull())
  136. mediaListObject.image.title = imageNode["Title"].asString();
  137. if(!imageNode["ImageId"].isNull())
  138. mediaListObject.image.imageId = imageNode["ImageId"].asString();
  139. if(!imageNode["CateId"].isNull())
  140. mediaListObject.image.cateId = std::stol(imageNode["CateId"].asString());
  141. if(!imageNode["CateName"].isNull())
  142. mediaListObject.image.cateName = imageNode["CateName"].asString();
  143. if(!imageNode["Ext"].isNull())
  144. mediaListObject.image.ext = imageNode["Ext"].asString();
  145. if(!imageNode["CreationTime"].isNull())
  146. mediaListObject.image.creationTime = imageNode["CreationTime"].asString();
  147. if(!imageNode["ModificationTime"].isNull())
  148. mediaListObject.image.modificationTime = imageNode["ModificationTime"].asString();
  149. if(!imageNode["Tags"].isNull())
  150. mediaListObject.image.tags = imageNode["Tags"].asString();
  151. if(!imageNode["Type"].isNull())
  152. mediaListObject.image.type = imageNode["Type"].asString();
  153. if(!imageNode["URL"].isNull())
  154. mediaListObject.image.uRL = imageNode["URL"].asString();
  155. if(!imageNode["Status"].isNull())
  156. mediaListObject.image.status = imageNode["Status"].asString();
  157. if(!imageNode["Description"].isNull())
  158. mediaListObject.image.description = imageNode["Description"].asString();
  159. if(!imageNode["StorageLocation"].isNull())
  160. mediaListObject.image.storageLocation = imageNode["StorageLocation"].asString();
  161. if(!imageNode["RegionId"].isNull())
  162. mediaListObject.image.regionId = imageNode["RegionId"].asString();
  163. mediaList_.push_back(mediaListObject);
  164. }
  165. if(!value["ScrollToken"].isNull())
  166. scrollToken_ = value["ScrollToken"].asString();
  167. if(!value["Total"].isNull())
  168. total_ = std::stol(value["Total"].asString());
  169. }
  170. std::vector<SearchMediaResult::Media> SearchMediaResult::getMediaList()const
  171. {
  172. return mediaList_;
  173. }
  174. std::string SearchMediaResult::getScrollToken()const
  175. {
  176. return scrollToken_;
  177. }
  178. long SearchMediaResult::getTotal()const
  179. {
  180. return total_;
  181. }