// // SPExploreViewController.swift // Thimra // // Created by 曾觉新 on 2025/4/9. // import UIKit class SPExploreViewController: SPPlayerListViewController { override var PlayerCellClass: SPPlayerListCell.Type { return SPExplorePlayerCell.self } override func viewDidLoad() { super.viewDidLoad() self.autoNextEpisode = true requestDataArr(page: 1) self.delegate = self self.dataSource = self } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.setNavigationBarHidden(true, animated: true) } } //MARK: -------------- SPPlayerListViewControllerDelegate -------------- extension SPExploreViewController: SPPlayerListViewControllerDelegate { func sp_playerViewControllerLoadMoreData(playerViewController: SPPlayerListViewController) { guard let pagination = self.pagination else { return } guard let page = self.pagination?.current_page else { return } let pageSize = pagination.page_size ?? 0 if pagination.page_total ?? 0 <= pageSize * page { return } self.requestDataArr(page: page + 1) } } //MARK: -------------- SPPlayerListViewControllerDataSource -------------- extension SPExploreViewController: SPPlayerListViewControllerDataSource { func sp_playerListViewController(_ viewController: SPPlayerListViewController, _ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath, oldCell: UICollectionViewCell) -> UICollectionViewCell { if let cell = oldCell as? SPPlayerListCell { if let model = dataArr[indexPath.row] as? SPShortModel { cell.shortModel = model cell.videoInfo = model.video_info } cell.isLoop = false } return oldCell } func sp_playerListViewController(_ viewController: SPPlayerListViewController, _ collectionView: UICollectionView, numberOfItemsInSection section: Int, oldNumber: Int) -> Int { return oldNumber } } extension SPExploreViewController { private func requestDataArr(page: Int) { SPHomeAPI.requestRecommandsTV(page: page) {[weak self] listModel in guard let self = self else { return } if let listModel = listModel, let list = listModel.list { if page == 1 { self.setDataArr(dataArr: list) { [weak self] in self?.play() } } else { self.addDataArr(dataArr: list) } self.pagination = listModel.pagination } } } }