Przeglądaj źródła

add:findIkoaMovie4VideoInfo v1

lvzhiqiang 3 lat temu
rodzic
commit
a9376d020f

+ 4 - 1
src/main/java/top/lvzhiqiang/entity/Temp4k.java → src/main/java/top/lvzhiqiang/entity/CrawlerIkoa4k.java

@@ -13,7 +13,7 @@ import java.time.LocalDateTime;
  * 2022/9/25 0:37
  */
 @Data
-public class Temp4k implements Serializable {
+public class CrawlerIkoa4k implements Serializable {
 
     /**
      * 主键
@@ -46,4 +46,7 @@ public class Temp4k implements Serializable {
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime modifyTime;
+
+    private String title;
+    private String mainWho;
 }

+ 7 - 4
src/main/java/top/lvzhiqiang/mapper/TempMapper.java → src/main/java/top/lvzhiqiang/mapper/CrawlerIkoa4kMapper.java

@@ -2,7 +2,7 @@ package top.lvzhiqiang.mapper;
 
 import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Select;
-import top.lvzhiqiang.entity.Temp4k;
+import top.lvzhiqiang.entity.CrawlerIkoa4k;
 
 import java.util.List;
 
@@ -12,7 +12,7 @@ import java.util.List;
  * @author lvzhiqiang
  * 2022/9/25 0:37
  */
-public interface TempMapper {
+public interface CrawlerIkoa4kMapper {
 
     @Select("select distinct vi.identification_code " +
             "from video_info vi" +
@@ -21,8 +21,11 @@ public interface TempMapper {
             "   or vio.resolution_ratio is null")
     List<String> findVideoInfo4BitrateNo4k(String bitrate);
 
-    @Insert("INSERT INTO temp_4k(name, cost, success, create_time, modify_time) " +
+    @Insert("INSERT INTO crawler_ikoa_4k(name, cost, success, create_time, modify_time) " +
             "VALUES (#{name}, #{cost}, 2, now(), now()) " +
             "ON DUPLICATE KEY UPDATE cost=values(cost),modify_time=now()")
-    void insertOrUpdate4k(Temp4k temp4k);
+    void insertOrUpdate4k(CrawlerIkoa4k crawlerIkoa4K);
+
+    @Select("select t1.*,t2.name title,t2.main_who mainWho from crawler_ikoa_4k t1 left join video_info t2 on t1.name=t2.identification_code order by t1.create_time ${order}")
+    List<CrawlerIkoa4k> findVideoInfo4Bitrate4k(String order);
 }

+ 40 - 10
src/main/java/top/lvzhiqiang/service/impl/CrawlerServiceImpl.java

@@ -12,15 +12,15 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StopWatch;
+import top.lvzhiqiang.entity.CrawlerIkoa4k;
 import top.lvzhiqiang.entity.CrawlerIkoaDownloadLog;
 import top.lvzhiqiang.entity.CrawlerXiaoeknowCourse;
 import top.lvzhiqiang.entity.DicCode;
-import top.lvzhiqiang.entity.Temp4k;
 import top.lvzhiqiang.exception.BusinessException;
+import top.lvzhiqiang.mapper.CrawlerIkoa4kMapper;
 import top.lvzhiqiang.mapper.CrawlerIkoaDownloadLogMapper;
 import top.lvzhiqiang.mapper.CrawlerXiaoeknowCourseMapper;
 import top.lvzhiqiang.mapper.DicCodeMapper;
-import top.lvzhiqiang.mapper.TempMapper;
 import top.lvzhiqiang.service.CrawlerService;
 import top.lvzhiqiang.util.DateUtils;
 import top.lvzhiqiang.util.StringUtils;
@@ -51,7 +51,7 @@ public class CrawlerServiceImpl implements CrawlerService {
     @Resource
     private DicCodeMapper dicCodeMapper;
     @Resource
-    private TempMapper tempMapper;
+    private CrawlerIkoa4kMapper crawlerIkoa4kMapper;
 
     @Value("${spring.profiles.active}")
     private String env;
@@ -327,10 +327,38 @@ public class CrawlerServiceImpl implements CrawlerService {
     }
 
     @Override
+    public String findIkoaMovie4VideoInfo(String bitrate, String order) {
+        List<CrawlerIkoa4k> crawlerIkoa4kList = crawlerIkoa4kMapper.findVideoInfo4Bitrate4k(order);
+
+        StringBuffer sb = new StringBuffer("total:".concat(String.valueOf(crawlerIkoa4kList.size())).concat("<br/>"));
+        sb.append("<table border=\"1\" cellspacing=\"0\"><tr><th>序号</th><th>识别码</th><th>cost</th><th>是否已下载到本地</th><th>创建时间</th><th>修改时间</th><th>标题</th><th>mainWho</th></tr>");
+
+        int i = 0;
+        for (CrawlerIkoa4k crawlerIkoa4k : crawlerIkoa4kList) {
+            i++;
+            sb.append("<tr>");
+
+            sb.append("<td>").append(i).append("</td>");
+            sb.append("<td>").append(crawlerIkoa4k.getName()).append("</td>");
+            sb.append("<td>").append(crawlerIkoa4k.getCost()).append("</td>");
+            sb.append("<td>").append(crawlerIkoa4k.getSuccess() == 1 ? "是" : "否").append("</td>");
+            sb.append("<td>").append(crawlerIkoa4k.getCreateTime()).append("</td>");
+            sb.append("<td>").append(crawlerIkoa4k.getModifyTime()).append("</td>");
+            sb.append("<td>").append(crawlerIkoa4k.getTitle()).append("</td>");
+            sb.append("<td>").append(crawlerIkoa4k.getMainWho()).append("</td>");
+
+            sb.append("</tr>");
+        }
+        sb.append("</table>");
+
+        return sb.toString();
+    }
+
+    @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Async
     public void jsoupIkoaMovie4VideoInfo(String bitrate) throws Exception {
-        List<String> list = tempMapper.findVideoInfo4BitrateNo4k(bitrate);
+        List<String> list = crawlerIkoa4kMapper.findVideoInfo4BitrateNo4k(bitrate);
 
         // 获取ikoa常量MAP
         Map<String, String> ikoaConstantMap = dicCodeMapper.findAll().stream()
@@ -349,8 +377,8 @@ public class CrawlerServiceImpl implements CrawlerService {
         }
         Connection.Response response;
         JSONObject result = null;
-        // List<Temp4k> temp4kList = new ArrayList<>();
         int k = 0;
+        int kk = 0;
         for (String code : list) {
             k++;
             outer:
@@ -371,12 +399,12 @@ public class CrawlerServiceImpl implements CrawlerService {
                     for (int j = 0; j < data.size(); j++) {
                         JSONObject jsonObject = data.getJSONObject(j);
                         if (jsonObject.getString("movie_type").contains(bitrate.toLowerCase())) {
-                            Temp4k temp4k = new Temp4k();
-                            temp4k.setName(code);
-                            temp4k.setCost(jsonObject.getInteger("cost"));
-                            // temp4kList.add(temp4k);
-                            tempMapper.insertOrUpdate4k(temp4k);
+                            CrawlerIkoa4k crawlerIkoa4K = new CrawlerIkoa4k();
+                            crawlerIkoa4K.setName(code);
+                            crawlerIkoa4K.setCost(jsonObject.getInteger("cost"));
+                            crawlerIkoa4kMapper.insertOrUpdate4k(crawlerIkoa4K);
                             log.warn("jsoupIkoaMovie4VideoInfo,k={},code={},4k", k, code);
+                            kk++;
                             break outer;
                         }
                     }
@@ -391,6 +419,8 @@ public class CrawlerServiceImpl implements CrawlerService {
                 }
             }
         }
+
+        log.warn("jsoupIkoaMovie4VideoInfo complete,4k size={}", kk);
     }
 
     /**

+ 15 - 0
src/main/resources/static/crawler.html

@@ -134,6 +134,21 @@
         </form>
     </div>
     <div style="margin-right:20px;">
+        <span class="font">findIkoaMovie4VideoInfo</span>
+        <form method="post" action="bg/crawler/findIkoaMovie4VideoInfo">
+            <span>码率</span>
+            <select name="bitrate" style="height: 21.43px;">
+                <option value="4k">4k</option>
+            </select>
+            <span>order</span>
+            <select name="order" style="height: 21.43px;">
+                <option value="asc">asc</option>
+                <option value="desc">desc</option>
+            </select>
+            <input type="submit" value="提交">
+        </form>
+    </div>
+    <div style="margin-right:20px;">
         <span class="font">jsoupIkoaMovie4VideoInfo</span>
         <form method="post" action="bg/crawler/jsoupIkoaMovie4VideoInfo">
             <span>码率</span>