├── LICENSE ├── Podfile ├── Pods ├── Alamofire │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── AFError.swift │ │ ├── Alamofire.swift │ │ ├── AlamofireExtended.swift │ │ ├── AuthenticationInterceptor.swift │ │ ├── CachedResponseHandler.swift │ │ ├── Combine.swift │ │ ├── DispatchQueue+Alamofire.swift │ │ ├── EventMonitor.swift │ │ ├── HTTPHeaders.swift │ │ ├── HTTPMethod.swift │ │ ├── MultipartFormData.swift │ │ ├── MultipartUpload.swift │ │ ├── NetworkReachabilityManager.swift │ │ ├── Notifications.swift │ │ ├── OperationQueue+Alamofire.swift │ │ ├── ParameterEncoder.swift │ │ ├── ParameterEncoding.swift │ │ ├── Protected.swift │ │ ├── RedirectHandler.swift │ │ ├── Request.swift │ │ ├── RequestInterceptor.swift │ │ ├── RequestTaskMap.swift │ │ ├── Response.swift │ │ ├── ResponseSerialization.swift │ │ ├── Result+Alamofire.swift │ │ ├── RetryPolicy.swift │ │ ├── ServerTrustEvaluation.swift │ │ ├── Session.swift │ │ ├── SessionDelegate.swift │ │ ├── StringEncoding+Alamofire.swift │ │ ├── URLConvertible+URLRequestConvertible.swift │ │ ├── URLEncodedFormEncoder.swift │ │ ├── URLRequest+Alamofire.swift │ │ ├── URLSessionConfiguration+Alamofire.swift │ │ └── Validation.swift ├── EZPlayer │ ├── EZPlayer │ │ ├── AVAsset+EZPlayer.swift │ │ ├── AVPlayer+EZPlayer.swift │ │ ├── AVPlayerItem+EZPlayer.swift │ │ ├── Delay.swift │ │ ├── EZPlayer.h │ │ ├── EZPlayer.swift │ │ ├── EZPlayer.xcassets │ │ │ ├── Contents.json │ │ │ └── New Folder │ │ │ │ ├── Contents.json │ │ │ │ ├── btn_airplay.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── btn_airplay.png │ │ │ │ └── btn_airplay@2x.png │ │ │ │ ├── btn_audiosubtitle.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── btn_audiosubtitle.png │ │ │ │ └── btn_audiosubtitle@2x.png │ │ │ │ ├── btn_back24x25.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── btn_back24x25.pdf │ │ │ │ ├── btn_float_close20x20.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── btn_float_close20x20.pdf │ │ │ │ ├── btn_fullscreen22x22.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── btn_fullscreen22x22.pdf │ │ │ │ ├── btn_normalscreen22x22.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── btn_normalscreen22x22.pdf │ │ │ │ ├── btn_pause22x22.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── btn_pause22x22.pdf │ │ │ │ ├── btn_pip_start.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── btn_pip_start.png │ │ │ │ └── btn_pip_start@2x.png │ │ │ │ ├── btn_pip_stop.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── btn_pip_stop@2x.png │ │ │ │ └── btn_play22x22.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── btn_play22x22.pdf │ │ ├── EZPlayerAVAssetResourceLoaderDelegate.swift │ │ ├── EZPlayerAudibleLegibleViewController.swift │ │ ├── EZPlayerAudibleLegibleViewController.xib │ │ ├── EZPlayerContentItem.swift │ │ ├── EZPlayerControlView.swift │ │ ├── EZPlayerControlView.xib │ │ ├── EZPlayerDelegate.swift │ │ ├── EZPlayerFairPlayResourceLoaderDelegate.swift │ │ ├── EZPlayerFullScreenViewController.swift │ │ ├── EZPlayerLoading.swift │ │ ├── EZPlayerNotification.swift │ │ ├── EZPlayerThumbnail.swift │ │ ├── EZPlayerTransport.swift │ │ ├── EZPlayerTransportExtension.swift │ │ ├── EZPlayerUtils.swift │ │ ├── EZPlayerView.swift │ │ ├── EZPlayerWindowContainer.swift │ │ ├── EZPlayerWindowContainerRootViewController.swift │ │ ├── EZPlayerWindowContainerRootViewController.xib │ │ ├── EZPlayerWindowView.swift │ │ ├── EZPlayerWindowView.xib │ │ └── Timer+EZPlayer.swift │ ├── LICENSE │ └── README.md ├── Kingfisher │ ├── LICENSE │ ├── README.md │ └── Sources │ │ ├── Cache │ │ ├── CacheSerializer.swift │ │ ├── DiskStorage.swift │ │ ├── FormatIndicatedCacheSerializer.swift │ │ ├── ImageCache.swift │ │ ├── MemoryStorage.swift │ │ └── Storage.swift │ │ ├── Extensions │ │ ├── ImageView+Kingfisher.swift │ │ ├── NSButton+Kingfisher.swift │ │ ├── NSTextAttachment+Kingfisher.swift │ │ ├── UIButton+Kingfisher.swift │ │ └── WKInterfaceImage+Kingfisher.swift │ │ ├── General │ │ ├── Deprecated.swift │ │ ├── ImageSource │ │ │ ├── AVAssetImageDataProvider.swift │ │ │ ├── ImageDataProvider.swift │ │ │ ├── Resource.swift │ │ │ └── Source.swift │ │ ├── Kingfisher.swift │ │ ├── KingfisherError.swift │ │ ├── KingfisherManager.swift │ │ └── KingfisherOptionsInfo.swift │ │ ├── Image │ │ ├── Filter.swift │ │ ├── GIFAnimatedImage.swift │ │ ├── Image.swift │ │ ├── ImageDrawing.swift │ │ ├── ImageFormat.swift │ │ ├── ImageProcessor.swift │ │ ├── ImageProgressive.swift │ │ ├── ImageTransition.swift │ │ └── Placeholder.swift │ │ ├── Kingfisher.h │ │ ├── Networking │ │ ├── AuthenticationChallengeResponsable.swift │ │ ├── ImageDataProcessor.swift │ │ ├── ImageDownloader.swift │ │ ├── ImageDownloaderDelegate.swift │ │ ├── ImageModifier.swift │ │ ├── ImagePrefetcher.swift │ │ ├── RedirectHandler.swift │ │ ├── RequestModifier.swift │ │ ├── RetryStrategy.swift │ │ ├── SessionDataTask.swift │ │ └── SessionDelegate.swift │ │ ├── Utility │ │ ├── Box.swift │ │ ├── CallbackQueue.swift │ │ ├── Delegate.swift │ │ ├── ExtensionHelpers.swift │ │ ├── Result.swift │ │ ├── Runtime.swift │ │ ├── SizeExtensions.swift │ │ └── String+MD5.swift │ │ └── Views │ │ ├── AnimatedImageView.swift │ │ └── Indicator.swift ├── MJRefresh │ ├── LICENSE │ ├── MJRefresh │ │ ├── Base │ │ │ ├── MJRefreshAutoFooter.h │ │ │ ├── MJRefreshAutoFooter.m │ │ │ ├── MJRefreshBackFooter.h │ │ │ ├── MJRefreshBackFooter.m │ │ │ ├── MJRefreshComponent.h │ │ │ ├── MJRefreshComponent.m │ │ │ ├── MJRefreshFooter.h │ │ │ ├── MJRefreshFooter.m │ │ │ ├── MJRefreshHeader.h │ │ │ ├── MJRefreshHeader.m │ │ │ ├── MJRefreshTrailer.h │ │ │ └── MJRefreshTrailer.m │ │ ├── Custom │ │ │ ├── Footer │ │ │ │ ├── Auto │ │ │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ │ │ ├── MJRefreshAutoGifFooter.m │ │ │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ │ │ ├── MJRefreshAutoNormalFooter.m │ │ │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ │ │ └── MJRefreshAutoStateFooter.m │ │ │ │ └── Back │ │ │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ │ │ ├── MJRefreshBackGifFooter.m │ │ │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ │ │ ├── MJRefreshBackNormalFooter.m │ │ │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ │ │ └── MJRefreshBackStateFooter.m │ │ │ ├── Header │ │ │ │ ├── MJRefreshGifHeader.h │ │ │ │ ├── MJRefreshGifHeader.m │ │ │ │ ├── MJRefreshNormalHeader.h │ │ │ │ ├── MJRefreshNormalHeader.m │ │ │ │ ├── MJRefreshStateHeader.h │ │ │ │ └── MJRefreshStateHeader.m │ │ │ └── Trailer │ │ │ │ ├── MJRefreshNormalTrailer.h │ │ │ │ ├── MJRefreshNormalTrailer.m │ │ │ │ ├── MJRefreshStateTrailer.h │ │ │ │ └── MJRefreshStateTrailer.m │ │ ├── MJRefresh.bundle │ │ │ ├── arrow@2x.png │ │ │ ├── en.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── ko.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── ru.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── trail_arrow@2x.png │ │ │ ├── uk.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── zh-Hans.lproj │ │ │ │ └── Localizable.strings │ │ │ └── zh-Hant.lproj │ │ │ │ └── Localizable.strings │ │ ├── MJRefresh.h │ │ ├── MJRefreshConfig.h │ │ ├── MJRefreshConfig.m │ │ ├── MJRefreshConst.h │ │ ├── MJRefreshConst.m │ │ ├── NSBundle+MJRefresh.h │ │ ├── NSBundle+MJRefresh.m │ │ ├── UICollectionViewLayout+MJRefresh.h │ │ ├── UICollectionViewLayout+MJRefresh.m │ │ ├── UIScrollView+MJExtension.h │ │ ├── UIScrollView+MJExtension.m │ │ ├── UIScrollView+MJRefresh.h │ │ ├── UIScrollView+MJRefresh.m │ │ ├── UIView+MJExtension.h │ │ └── UIView+MJExtension.m │ └── README.md ├── Pods.xcodeproj │ └── project.pbxproj ├── SQLiteRepairKit │ ├── LICENSE │ ├── README.md │ └── repair │ │ ├── SQLiteRepairKit.h │ │ ├── sqliterk.c │ │ ├── sqliterk.h │ │ ├── sqliterk_api.c │ │ ├── sqliterk_btree.c │ │ ├── sqliterk_btree.h │ │ ├── sqliterk_column.c │ │ ├── sqliterk_column.h │ │ ├── sqliterk_crypto.c │ │ ├── sqliterk_crypto.h │ │ ├── sqliterk_os.c │ │ ├── sqliterk_os.h │ │ ├── sqliterk_output.cpp │ │ ├── sqliterk_pager.c │ │ ├── sqliterk_pager.h │ │ ├── sqliterk_util.c │ │ ├── sqliterk_util.h │ │ ├── sqliterk_values.c │ │ └── sqliterk_values.h ├── SnapKit │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── Constraint.swift │ │ ├── ConstraintAttributes.swift │ │ ├── ConstraintConfig.swift │ │ ├── ConstraintConstantTarget.swift │ │ ├── ConstraintDSL.swift │ │ ├── ConstraintDescription.swift │ │ ├── ConstraintDirectionalInsetTarget.swift │ │ ├── ConstraintDirectionalInsets.swift │ │ ├── ConstraintInsetTarget.swift │ │ ├── ConstraintInsets.swift │ │ ├── ConstraintItem.swift │ │ ├── ConstraintLayoutGuide+Extensions.swift │ │ ├── ConstraintLayoutGuide.swift │ │ ├── ConstraintLayoutGuideDSL.swift │ │ ├── ConstraintLayoutSupport.swift │ │ ├── ConstraintLayoutSupportDSL.swift │ │ ├── ConstraintMaker.swift │ │ ├── ConstraintMakerEditable.swift │ │ ├── ConstraintMakerExtendable.swift │ │ ├── ConstraintMakerFinalizable.swift │ │ ├── ConstraintMakerPriortizable.swift │ │ ├── ConstraintMakerRelatable.swift │ │ ├── ConstraintMultiplierTarget.swift │ │ ├── ConstraintOffsetTarget.swift │ │ ├── ConstraintPriority.swift │ │ ├── ConstraintPriorityTarget.swift │ │ ├── ConstraintRelatableTarget.swift │ │ ├── ConstraintRelation.swift │ │ ├── ConstraintView+Extensions.swift │ │ ├── ConstraintView.swift │ │ ├── ConstraintViewDSL.swift │ │ ├── Debugging.swift │ │ ├── LayoutConstraint.swift │ │ ├── LayoutConstraintItem.swift │ │ ├── Typealiases.swift │ │ └── UILayoutSupport+Extensions.swift ├── SwifterSwift │ ├── LICENSE │ ├── README.md │ └── Sources │ │ └── SwifterSwift │ │ ├── AppKit │ │ ├── NSColorExtensions.swift │ │ ├── NSImageExtensions.swift │ │ └── NSViewExtensions.swift │ │ ├── CoreAnimation │ │ ├── CAGradientLayerExtensions.swift │ │ └── CATransform3DExtensions.swift │ │ ├── CoreGraphics │ │ ├── CGAffineTransformExtensions.swift │ │ ├── CGColorExtensions.swift │ │ ├── CGFloatExtensions.swift │ │ ├── CGPointExtensions.swift │ │ ├── CGRectExtensions.swift │ │ ├── CGSizeExtensions.swift │ │ └── CGVectorExtensions.swift │ │ ├── CoreLocation │ │ ├── CLLocationArrayExtensions.swift │ │ ├── CLLocationExtensions.swift │ │ └── CLVisitExtensions.swift │ │ ├── Dispatch │ │ └── DispatchQueueExtensions.swift │ │ ├── Foundation │ │ ├── CalendarExtensions.swift │ │ ├── DataExtensions.swift │ │ ├── DateExtensions.swift │ │ ├── FileManagerExtensions.swift │ │ ├── LocaleExtensions.swift │ │ ├── NSAttributedStringExtensions.swift │ │ ├── NSPredicateExtensions.swift │ │ ├── NSRegularExpressionExtensions.swift │ │ ├── NotificationCenterExtensions.swift │ │ ├── URLExtensions.swift │ │ ├── URLRequestExtensions.swift │ │ └── UserDefaultsExtensions.swift │ │ ├── MapKit │ │ ├── MKMapViewExtensions.swift │ │ └── MKPolylineExtensions.swift │ │ ├── SceneKit │ │ ├── SCNBoxExtensions.swift │ │ ├── SCNCapsuleExtensions.swift │ │ ├── SCNConeExtensions.swift │ │ ├── SCNCylinderExtensions.swift │ │ ├── SCNGeometryExtensions.swift │ │ ├── SCNMaterialExtensions.swift │ │ ├── SCNPlaneExtensions.swift │ │ ├── SCNShapeExtensions.swift │ │ ├── SCNSphereExtensions.swift │ │ └── SCNVector3Extensions.swift │ │ ├── Shared │ │ ├── ColorExtensions.swift │ │ └── EdgeInsetsExtensions.swift │ │ ├── SpriteKit │ │ └── SKNodeExtensions.swift │ │ ├── StoreKit │ │ └── SKProductExtensions.swift │ │ ├── SwiftStdlib │ │ ├── ArrayExtensions.swift │ │ ├── BidirectionalCollectionExtensions.swift │ │ ├── BinaryFloatingPointExtensions.swift │ │ ├── BoolExtensions.swift │ │ ├── CharacterExtensions.swift │ │ ├── CollectionExtensions.swift │ │ ├── ComparableExtensions.swift │ │ ├── DecodableExtensions.swift │ │ ├── Deprecated │ │ │ └── StdlibDeprecated.swift │ │ ├── DictionaryExtensions.swift │ │ ├── DoubleExtensions.swift │ │ ├── FloatExtensions.swift │ │ ├── FloatingPointExtensions.swift │ │ ├── IntExtensions.swift │ │ ├── KeyedDecodingContainerExtensions.swift │ │ ├── MutableCollectionExtensions.swift │ │ ├── OptionalExtensions.swift │ │ ├── RandomAccessCollectionExtensions.swift │ │ ├── RangeReplaceableCollectionExtensions.swift │ │ ├── SequenceExtensions.swift │ │ ├── SignedIntegerExtensions.swift │ │ ├── SignedNumericExtensions.swift │ │ ├── StringExtensions.swift │ │ └── StringProtocolExtensions.swift │ │ └── UIKit │ │ ├── UIActivityExtensions.swift │ │ ├── UIAlertControllerExtensions.swift │ │ ├── UIApplicationExtensions.swift │ │ ├── UIBarButtonItemExtensions.swift │ │ ├── UIBezierPathExtensions.swift │ │ ├── UIButtonExtensions.swift │ │ ├── UICollectionViewExtensions.swift │ │ ├── UIColorExtensions.swift │ │ ├── UIDatePickerExtensions.swift │ │ ├── UIFontExtensions.swift │ │ ├── UIGestureRecognizerExtensions.swift │ │ ├── UIImageExtensions.swift │ │ ├── UIImageViewExtensions.swift │ │ ├── UILabelExtensions.swift │ │ ├── UILayoutPriorityExtensions.swift │ │ ├── UINavigationBarExtensions.swift │ │ ├── UINavigationControllerExtensions.swift │ │ ├── UINavigationItemExtensions.swift │ │ ├── UIRefreshControlExtensions.swift │ │ ├── UIScrollViewExtensions.swift │ │ ├── UISearchBarExtensions.swift │ │ ├── UISegmentedControlExtensions.swift │ │ ├── UISliderExtensions.swift │ │ ├── UIStackViewExtensions.swift │ │ ├── UIStoryboardExtensions.swift │ │ ├── UISwitchExtensions.swift │ │ ├── UITabBarExtensions.swift │ │ ├── UITableViewExtensions.swift │ │ ├── UITextFieldExtensions.swift │ │ ├── UITextViewExtensions.swift │ │ ├── UIViewControllerExtensions.swift │ │ ├── UIViewExtensions.swift │ │ └── UIWindowExtensions.swift ├── SwiftyJSON │ ├── LICENSE │ ├── README.md │ └── Source │ │ └── SwiftyJSON │ │ └── SwiftyJSON.swift ├── Target Support Files │ ├── Alamofire │ │ ├── Alamofire-Info.plist │ │ ├── Alamofire-dummy.m │ │ ├── Alamofire-prefix.pch │ │ ├── Alamofire-umbrella.h │ │ ├── Alamofire.debug.xcconfig │ │ ├── Alamofire.modulemap │ │ └── Alamofire.release.xcconfig │ ├── EZPlayer │ │ ├── EZPlayer-Info.plist │ │ ├── EZPlayer-dummy.m │ │ ├── EZPlayer-prefix.pch │ │ ├── EZPlayer-umbrella.h │ │ ├── EZPlayer.debug.xcconfig │ │ ├── EZPlayer.modulemap │ │ └── EZPlayer.release.xcconfig │ ├── Kingfisher │ │ ├── Kingfisher-Info.plist │ │ ├── Kingfisher-dummy.m │ │ ├── Kingfisher-prefix.pch │ │ ├── Kingfisher-umbrella.h │ │ ├── Kingfisher.debug.xcconfig │ │ ├── Kingfisher.modulemap │ │ └── Kingfisher.release.xcconfig │ ├── MJRefresh │ │ ├── MJRefresh-Info.plist │ │ ├── MJRefresh-dummy.m │ │ ├── MJRefresh-prefix.pch │ │ ├── MJRefresh-umbrella.h │ │ ├── MJRefresh.debug.xcconfig │ │ ├── MJRefresh.modulemap │ │ └── MJRefresh.release.xcconfig │ ├── Pods-meijuplay │ │ ├── Pods-meijuplay-Info.plist │ │ ├── Pods-meijuplay-acknowledgements.markdown │ │ ├── Pods-meijuplay-acknowledgements.plist │ │ ├── Pods-meijuplay-dummy.m │ │ ├── Pods-meijuplay-frameworks-Debug-input-files.xcfilelist │ │ ├── Pods-meijuplay-frameworks-Debug-output-files.xcfilelist │ │ ├── Pods-meijuplay-frameworks-Release-input-files.xcfilelist │ │ ├── Pods-meijuplay-frameworks-Release-output-files.xcfilelist │ │ ├── Pods-meijuplay-frameworks.sh │ │ ├── Pods-meijuplay-resources-Debug-input-files.xcfilelist │ │ ├── Pods-meijuplay-resources-Debug-output-files.xcfilelist │ │ ├── Pods-meijuplay-resources-Release-input-files.xcfilelist │ │ ├── Pods-meijuplay-resources-Release-output-files.xcfilelist │ │ ├── Pods-meijuplay-resources.sh │ │ ├── Pods-meijuplay-umbrella.h │ │ ├── Pods-meijuplay.debug.xcconfig │ │ ├── Pods-meijuplay.modulemap │ │ └── Pods-meijuplay.release.xcconfig │ ├── SQLiteRepairKit │ │ ├── SQLiteRepairKit-Info.plist │ │ ├── SQLiteRepairKit-dummy.m │ │ ├── SQLiteRepairKit-prefix.pch │ │ ├── SQLiteRepairKit-umbrella.h │ │ ├── SQLiteRepairKit.debug.xcconfig │ │ ├── SQLiteRepairKit.modulemap │ │ └── SQLiteRepairKit.release.xcconfig │ ├── SnapKit │ │ ├── SnapKit-Info.plist │ │ ├── SnapKit-dummy.m │ │ ├── SnapKit-prefix.pch │ │ ├── SnapKit-umbrella.h │ │ ├── SnapKit.debug.xcconfig │ │ ├── SnapKit.modulemap │ │ └── SnapKit.release.xcconfig │ ├── SwifterSwift │ │ ├── SwifterSwift-Info.plist │ │ ├── SwifterSwift-dummy.m │ │ ├── SwifterSwift-prefix.pch │ │ ├── SwifterSwift-umbrella.h │ │ ├── SwifterSwift.debug.xcconfig │ │ ├── SwifterSwift.modulemap │ │ └── SwifterSwift.release.xcconfig │ ├── SwiftyJSON │ │ ├── SwiftyJSON-Info.plist │ │ ├── SwiftyJSON-dummy.m │ │ ├── SwiftyJSON-prefix.pch │ │ ├── SwiftyJSON-umbrella.h │ │ ├── SwiftyJSON.debug.xcconfig │ │ ├── SwiftyJSON.modulemap │ │ └── SwiftyJSON.release.xcconfig │ ├── Toast-Swift │ │ ├── Toast-Swift-Info.plist │ │ ├── Toast-Swift-dummy.m │ │ ├── Toast-Swift-prefix.pch │ │ ├── Toast-Swift-umbrella.h │ │ ├── Toast-Swift.debug.xcconfig │ │ ├── Toast-Swift.modulemap │ │ └── Toast-Swift.release.xcconfig │ ├── WCDB.swift │ │ ├── WCDB.swift-Info.plist │ │ ├── WCDB.swift-dummy.m │ │ ├── WCDB.swift-prefix.pch │ │ ├── WCDB.swift-umbrella.h │ │ ├── WCDB.swift.debug.xcconfig │ │ ├── WCDB.swift.modulemap │ │ └── WCDB.swift.release.xcconfig │ └── WCDBOptimizedSQLCipher │ │ ├── WCDBOptimizedSQLCipher-Info.plist │ │ ├── WCDBOptimizedSQLCipher-dummy.m │ │ ├── WCDBOptimizedSQLCipher-prefix.pch │ │ ├── WCDBOptimizedSQLCipher-umbrella.h │ │ ├── WCDBOptimizedSQLCipher.debug.xcconfig │ │ ├── WCDBOptimizedSQLCipher.modulemap │ │ └── WCDBOptimizedSQLCipher.release.xcconfig ├── Toast-Swift │ ├── LICENSE │ ├── README.md │ └── Toast │ │ └── Toast.swift ├── WCDB.swift │ ├── LICENSE │ ├── README.md │ └── swift │ │ └── source │ │ ├── abstract │ │ ├── Column.swift │ │ ├── ColumnDef.swift │ │ ├── ColumnIndex.swift │ │ ├── ColumnResult.swift │ │ ├── ColumnType.swift │ │ ├── Conflict.swift │ │ ├── Convertible.swift │ │ ├── Describable.swift │ │ ├── Expression.swift │ │ ├── ForeignKey.swift │ │ ├── FundamentalValue.swift │ │ ├── Handle.swift │ │ ├── HandleStatement.swift │ │ ├── JoinClause.swift │ │ ├── LiteralValue.swift │ │ ├── ModuleArgument.swift │ │ ├── Operable.swift │ │ ├── Order.swift │ │ ├── OrderTerm.swift │ │ ├── Pragma.swift │ │ ├── Statement.swift │ │ ├── StatementAlterTable.swift │ │ ├── StatementAttach.swift │ │ ├── StatementCreateIndex.swift │ │ ├── StatementCreateTable.swift │ │ ├── StatementCreateVirtualTable.swift │ │ ├── StatementDelete.swift │ │ ├── StatementDetach.swift │ │ ├── StatementDropIndex.swift │ │ ├── StatementDropTable.swift │ │ ├── StatementExplain.swift │ │ ├── StatementInsert.swift │ │ ├── StatementPragma.swift │ │ ├── StatementReindex.swift │ │ ├── StatementRelease.swift │ │ ├── StatementRollback.swift │ │ ├── StatementSavepoint.swift │ │ ├── StatementSelect.swift │ │ ├── StatementTransaction.swift │ │ ├── StatementUpdate.swift │ │ ├── StatementVacuum.swift │ │ ├── Subquery.swift │ │ ├── TableConstraint.swift │ │ ├── Tokenize.swift │ │ └── Tracer.swift │ │ ├── builtin │ │ ├── CodableType.swift │ │ ├── CommonStatement.swift │ │ └── Master.swift │ │ ├── core │ │ ├── base │ │ │ ├── Config.swift │ │ │ ├── Core.swift │ │ │ ├── CoreStatement.swift │ │ │ ├── Database.swift │ │ │ ├── HandlePool.swift │ │ │ ├── RecyclableCore.swift │ │ │ └── Transaction.swift │ │ ├── binding │ │ │ ├── ColumnConstraintBinding.swift │ │ │ ├── IndexBinding.swift │ │ │ ├── Property.swift │ │ │ ├── Redirectable.swift │ │ │ ├── TableBinding.swift │ │ │ ├── TableConstraintBinding.swift │ │ │ └── VirtualTableBinding.swift │ │ ├── codable │ │ │ ├── CodingTableKey.swift │ │ │ ├── ColumnCodable.swift │ │ │ ├── ColumnTypeDecoder.swift │ │ │ ├── TableCodable.swift │ │ │ ├── TableDecoder.swift │ │ │ └── TableEncoder.swift │ │ ├── fts │ │ │ └── WCDBTokenize.swift │ │ └── interface │ │ │ ├── ChainCall.swift │ │ │ ├── Declare.swift │ │ │ ├── Delete.swift │ │ │ ├── Insert.swift │ │ │ ├── Interface.swift │ │ │ ├── MultiSelect.swift │ │ │ ├── RowSelect.swift │ │ │ ├── Select.swift │ │ │ ├── Selectable.swift │ │ │ ├── Table.swift │ │ │ ├── TableInterface.swift │ │ │ └── Update.swift │ │ └── util │ │ ├── Atomic.swift │ │ ├── ConcurrentList.swift │ │ ├── Convenience.swift │ │ ├── Error.swift │ │ ├── File.swift │ │ ├── Lock.swift │ │ ├── Optional.swift │ │ ├── RWLock.swift │ │ ├── Recyclable.swift │ │ ├── SQLite-Bridging.c │ │ ├── SQLite-Bridging.h │ │ ├── SQLite-Bridging.swift │ │ ├── SteadyClock.swift │ │ ├── Tagged.swift │ │ ├── ThreadLocal.swift │ │ ├── TimedQueue.swift │ │ └── WCDB-Bridging.h └── WCDBOptimizedSQLCipher │ ├── LICENSE │ ├── README.md │ ├── ext │ ├── fts3 │ │ ├── fts3.c │ │ ├── fts3.h │ │ ├── fts3Int.h │ │ ├── fts3_aux.c │ │ ├── fts3_expr.c │ │ ├── fts3_hash.c │ │ ├── fts3_hash.h │ │ ├── fts3_icu.c │ │ ├── fts3_porter.c │ │ ├── fts3_snippet.c │ │ ├── fts3_tokenize_vtab.c │ │ ├── fts3_tokenizer.c │ │ ├── fts3_tokenizer.h │ │ ├── fts3_tokenizer1.c │ │ ├── fts3_unicode.c │ │ ├── fts3_unicode2.c │ │ └── fts3_write.c │ ├── icu │ │ ├── icu.c │ │ └── sqliteicu.h │ ├── rbu │ │ ├── sqlite3rbu.c │ │ └── sqlite3rbu.h │ ├── rtree │ │ ├── rtree.c │ │ ├── rtree.h │ │ └── sqlite3rtree.h │ └── userauth │ │ └── sqlite3userauth.h │ ├── fts5.c │ ├── fts5.h │ ├── keywordhash.h │ ├── opcodes.c │ ├── opcodes.h │ ├── parse.c │ ├── parse.h │ ├── sqlite3.h │ └── src │ ├── alter.c │ ├── analyze.c │ ├── attach.c │ ├── auth.c │ ├── backup.c │ ├── bitvec.c │ ├── btmutex.c │ ├── btree.c │ ├── btree.h │ ├── btreeInt.h │ ├── build.c │ ├── callback.c │ ├── complete.c │ ├── crypto.c │ ├── crypto.h │ ├── crypto_cc.c │ ├── crypto_impl.c │ ├── crypto_libtomcrypt.c │ ├── ctime.c │ ├── date.c │ ├── dbstat.c │ ├── delete.c │ ├── expr.c │ ├── fault.c │ ├── fkey.c │ ├── func.c │ ├── global.c │ ├── hash.c │ ├── hash.h │ ├── hwtime.h │ ├── insert.c │ ├── legacy.c │ ├── loadext.c │ ├── main.c │ ├── malloc.c │ ├── mem0.c │ ├── mem1.c │ ├── mem2.c │ ├── mem3.c │ ├── mem5.c │ ├── memjournal.c │ ├── msvc.h │ ├── mutex.c │ ├── mutex.h │ ├── mutex_noop.c │ ├── mutex_unix.c │ ├── mutex_wcdb.c │ ├── mutex_wcdb.h │ ├── notify.c │ ├── os.c │ ├── os.h │ ├── os_common.h │ ├── os_setup.h │ ├── os_unix.c │ ├── os_wcdb.c │ ├── os_wcdb.h │ ├── pager.c │ ├── pager.h │ ├── pcache.c │ ├── pcache.h │ ├── pcache1.c │ ├── pragma.c │ ├── pragma.h │ ├── prepare.c │ ├── printf.c │ ├── queue.c │ ├── queue.h │ ├── random.c │ ├── resolve.c │ ├── rowset.c │ ├── select.c │ ├── sqlcipher.h │ ├── sqlite3ext.h │ ├── sqliteInt.h │ ├── sqliteLimit.h │ ├── status.c │ ├── table.c │ ├── threads.c │ ├── tokenize.c │ ├── treeview.c │ ├── trigger.c │ ├── update.c │ ├── utf.c │ ├── util.c │ ├── vacuum.c │ ├── vdbe.c │ ├── vdbe.h │ ├── vdbeInt.h │ ├── vdbeapi.c │ ├── vdbeaux.c │ ├── vdbeblob.c │ ├── vdbemem.c │ ├── vdbesort.c │ ├── vdbetrace.c │ ├── vtab.c │ ├── vxworks.h │ ├── wal.c │ ├── wal.h │ ├── walker.c │ ├── where.c │ ├── whereInt.h │ ├── wherecode.c │ └── whereexpr.c ├── README.md ├── meijuplay.xcodeproj └── project.pbxproj └── meijuplay ├── AppDelegate.swift ├── Assets.xcassets ├── AccentColor.colorset │ └── Contents.json ├── AppIcon.appiconset │ ├── 1024-1024.png │ ├── 120-120.png │ ├── 120-121.png │ ├── 152-152.png │ ├── 167-167.png │ ├── 180-180.png │ ├── 20-20.png │ ├── 29-29.png │ ├── 40-40.png │ ├── 40-41.png │ ├── 40-42.png │ ├── 58-58.png │ ├── 58-59.png │ ├── 60-60.png │ ├── 76-76.png │ ├── 80-80.png │ ├── 80-81.png │ ├── 87-87.png │ └── Contents.json ├── Contents.json ├── app_icon.imageset │ ├── Contents.json │ ├── app_icon@2x.png │ └── app_icon@3x.png ├── dark_arrow_right.imageset │ ├── Contents.json │ ├── dark_arrow_right@2x.png │ └── dark_arrow_right@3x.png ├── episode_new.imageset │ ├── Contents.json │ ├── episode_new@2x.png │ └── episode_new@3x.png ├── episode_play.imageset │ ├── Contents.json │ ├── episode_play@2x.png │ └── episode_play@3x.png ├── icon_game24.imageset │ ├── Contents.json │ ├── icon_game24@2x.png │ └── icon_game24@3x.png ├── icon_watermarkcamera.imageset │ ├── Contents.json │ ├── icon_watermarkcamera@2x.png │ └── icon_watermarkcamera@3x.png ├── jumpIndicator.imageset │ ├── Contents.json │ ├── jumpIndicator@2x.png │ └── jumpIndicator@3x.png ├── nav_favorite.imageset │ ├── Contents.json │ ├── nav_favorite@2x.png │ └── nav_favorite@3x.png ├── nav_favorite_select.imageset │ ├── Contents.json │ ├── nav_favorite_select@2x.png │ └── nav_favorite_select@3x.png ├── nav_folder.imageset │ ├── Contents.json │ ├── nav_folder@2x.png │ └── nav_folder@3x.png ├── nav_search.imageset │ ├── Contents.json │ ├── nav_search@2x.png │ └── nav_search@3x.png ├── searchbar.imageset │ ├── Contents.json │ ├── searchbar@2x.png │ └── searchbar@3x.png └── selectIndicator.imageset │ ├── Contents.json │ ├── selectIndicator@2x.png │ └── selectIndicator@3x.png ├── Base.lproj └── LaunchScreen.storyboard ├── Base ├── MWBaseViewController.swift └── MWNavigationController.swift ├── Common ├── Const │ └── ProjectConsts.swift └── Extension │ ├── String_Extensions.swift │ ├── UIColor_Extensions.swift │ ├── UIFont_Extensions.swift │ ├── UIKit_Extensions.swift │ └── UIViewController_Extensions.swift ├── Info.plist ├── Request ├── MWAPIManager.swift ├── MWNetworkLogger.swift ├── MWNetworkReachability.swift ├── MWRequestInterceptor.swift ├── MeiJuAPIManager.swift ├── MeiJuRequest.swift └── MeiJuRouter.swift ├── 侧边切换页 ├── Model │ └── MeiJuFuncItem.swift ├── Module │ └── MeiJuLeftFunModule.swift └── View │ ├── MeiJuLeftFuncCell.swift │ └── MeiJuLeftFuncView.swift ├── 关于 ├── Controller │ ├── MWDevOtherAppsVC.swift │ ├── MeiJuAboutVC.swift │ └── MeiJuPrivacyVC.swift ├── Model │ ├── MWDevOtherAppsItem.swift │ └── MeiJuAboutItem.swift ├── Module │ ├── MWDevOtherAppsModule.swift │ ├── MeiJuAboutViewModule.swift │ └── PrivacyAlertViewModule.swift └── View │ ├── MWDevOtherAppsCell.swift │ ├── MWDevOtherAppsView.swift │ ├── MeiJuAboutCell.swift │ ├── MeiJuAboutHeaderView.swift │ ├── MeiJuAboutView.swift │ └── PrivacyAlertView.swift ├── 列表页 ├── Controller │ └── MeiJuListVC.swift ├── Module │ └── MeiJuListModule.swift └── View │ ├── MeiJuListCustomNavView.swift │ ├── MeiJuListHeaderView.swift │ └── MeiJuListView.swift ├── 剧集 ├── Controller │ └── MeiJuEpisodeSeasonVC.swift ├── Model │ └── MeiJuEpisodeSeasonItem.swift ├── Module │ ├── MeiJuEpisodePlayModule.swift │ └── MeiJuEpisodeSeasonModule.swift └── View │ ├── EpisodeSeasonPlayView.swift │ └── EpisodeSeasonSubview.swift ├── 我的 └── Controller │ └── MeiJuMineVC.swift ├── 搜索页 ├── Controller │ └── MeiJuSearchVC.swift ├── Model │ └── MeiJuSearchResItem.swift ├── Module │ ├── MeiJuSearchBarViewModule.swift │ ├── MeiJuSearchContentViewModule.swift │ └── MeiJuSearchSuggestViewModule.swift └── View │ ├── MeiJuSearchBarView.swift │ ├── MeiJuSearchContentView.swift │ └── MeiJuSearchSuggestView.swift ├── 播放页 ├── Controller │ └── MWPlayerVC.swift ├── Model │ └── MeiJuMediaItem.swift ├── Module │ └── MWPlayerViewModule.swift ├── Util │ ├── MWPlayer.swift │ └── MWPlayerUtil.swift └── View │ └── MWPlayerView.swift ├── 数据库 ├── MeiJuDB.swift ├── MeiJuDBItem.swift ├── MeiJuListDBItem.swift └── 通用 │ └── MWDataBase.swift ├── 热搜页 └── Controller │ └── MeiJuHotSearchVC.swift ├── 设置页面 ├── Controller │ └── MeiJuSetController.swift ├── Model │ └── MeiJuSetItem.swift ├── Module │ └── MeiJuSetModule.swift └── View │ ├── MeiJuSetCell.swift │ ├── MeiJuSetHeaderView.swift │ └── MeiJuSetView.swift └── 首页 ├── Controller └── MeiJuHomeVC.swift ├── Model └── MeiJuHomeResItem.swift ├── Module └── MeiJuHomeModule.swift └── View ├── MeiJuHomeCell.swift ├── MeiJuHomeCircleHeader.swift ├── MeiJuHomeHeaderView.swift ├── MeiJuHomeSingleCircleView.swift └── MeiJuHomeView.swift /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 mokong 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | 3 | # Uncomment the next line to define a global platform for your project 4 | platform :ios, '10.0' 5 | 6 | 7 | def thirdpary_pods 8 | pod 'SnapKit', '~> 5.0.0' 9 | pod 'Alamofire', '~> 5.4' 10 | pod 'SwiftyJSON', '~> 4.0' 11 | pod 'WCDB.swift' 12 | pod 'Kingfisher', '~>5.15.7' 13 | pod 'SwifterSwift' 14 | pod 'EZPlayer' 15 | pod 'MJRefresh' 16 | pod 'Toast-Swift', '~> 5.0.1' 17 | end 18 | 19 | 20 | 21 | target 'meijuplay' do 22 | # Comment the next line if you don't want to use dynamic frameworks 23 | use_frameworks! 24 | 25 | # Pods for meijuplay 26 | thirdpary_pods 27 | end 28 | -------------------------------------------------------------------------------- /Pods/Alamofire/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-2021 Alamofire Software Foundation (http://alamofire.org/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/AVPlayer+EZPlayer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AVPlayer+EZPlayer.swift 3 | // EZPlayer 4 | // 5 | // Created by yangjun zhu on 2017/1/12. 6 | // Copyright © 2017年 yangjun zhu. All rights reserved. 7 | // 8 | 9 | import AVFoundation 10 | extension AVPlayer { 11 | 12 | /// 观看了的时长(不包括暂停等) 13 | public var durationWatched: TimeInterval { 14 | var duration: TimeInterval = 0 15 | if let events = self.currentItem?.accessLog()?.events { 16 | for event in events { 17 | duration += event.durationWatched 18 | } 19 | } 20 | return duration 21 | } 22 | 23 | /// 总时长 24 | public var duration: TimeInterval? { 25 | if let duration = self.currentItem?.duration { 26 | return CMTimeGetSeconds(duration) 27 | } 28 | return nil 29 | } 30 | 31 | /// 播放进度 32 | public var currentTime: TimeInterval? { 33 | return CMTimeGetSeconds(self.currentTime()) 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/Delay.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Delay.swift 3 | // EZPlayer 4 | // 5 | // Created by yangjun zhu on 2016/12/28. 6 | // Copyright © 2016年 yangjun zhu. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public typealias Task = (_ cancel : Bool) -> Void 12 | 13 | public func delay(_ time: TimeInterval, task: @escaping ()->()) -> Task? { 14 | 15 | func dispatch_later(block: @escaping ()->()) { 16 | let t = DispatchTime.now() + time 17 | DispatchQueue.main.asyncAfter(deadline: t, execute: block) 18 | } 19 | 20 | 21 | 22 | var closure: (()->Void)? = task 23 | var result: Task? 24 | 25 | let delayedClosure: Task = { 26 | cancel in 27 | if let internalClosure = closure { 28 | if (cancel == false) { 29 | DispatchQueue.main.async(execute: internalClosure) 30 | } 31 | } 32 | closure = nil 33 | result = nil 34 | } 35 | 36 | result = delayedClosure 37 | 38 | dispatch_later { 39 | if let delayedClosure = result { 40 | delayedClosure(false) 41 | } 42 | } 43 | 44 | return result 45 | 46 | } 47 | 48 | public func cancel(_ task: Task?) { 49 | task?(true) 50 | } 51 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // EZPlayer.h 3 | // EZPlayer 4 | // 5 | // Created by yangjun zhu on 2016/12/28. 6 | // Copyright © 2016年 yangjun zhu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for EZPlayer. 12 | FOUNDATION_EXPORT double EZPlayerVersionNumber; 13 | 14 | //! Project version string for EZPlayer. 15 | FOUNDATION_EXPORT const unsigned char EZPlayerVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_airplay.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_airplay.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn_airplay@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_airplay.imageset/btn_airplay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_airplay.imageset/btn_airplay.png -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_airplay.imageset/btn_airplay@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_airplay.imageset/btn_airplay@2x.png -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_audiosubtitle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_audiosubtitle.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn_audiosubtitle@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_audiosubtitle.imageset/btn_audiosubtitle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_audiosubtitle.imageset/btn_audiosubtitle.png -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_audiosubtitle.imageset/btn_audiosubtitle@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_audiosubtitle.imageset/btn_audiosubtitle@2x.png -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_back24x25.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_back24x25.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_back24x25.imageset/btn_back24x25.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_back24x25.imageset/btn_back24x25.pdf -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_float_close20x20.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_float_close20x20.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_float_close20x20.imageset/btn_float_close20x20.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_float_close20x20.imageset/btn_float_close20x20.pdf -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_fullscreen22x22.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_fullscreen22x22.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_fullscreen22x22.imageset/btn_fullscreen22x22.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_fullscreen22x22.imageset/btn_fullscreen22x22.pdf -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_normalscreen22x22.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_normalscreen22x22.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_normalscreen22x22.imageset/btn_normalscreen22x22.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_normalscreen22x22.imageset/btn_normalscreen22x22.pdf -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_pause22x22.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_pause22x22.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_pause22x22.imageset/btn_pause22x22.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_pause22x22.imageset/btn_pause22x22.pdf -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_pip_start.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "btn_pip_start.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "btn_pip_start@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_pip_start.imageset/btn_pip_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_pip_start.imageset/btn_pip_start.png -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_pip_start.imageset/btn_pip_start@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_pip_start.imageset/btn_pip_start@2x.png -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_pip_stop.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "btn_pip_stop@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_pip_stop.imageset/btn_pip_stop@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_pip_stop.imageset/btn_pip_stop@2x.png -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_play22x22.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_play22x22.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_play22x22.imageset/btn_play22x22.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/EZPlayer/EZPlayer/EZPlayer.xcassets/New Folder/btn_play22x22.imageset/btn_play22x22.pdf -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayerAVAssetResourceLoaderDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EZPlayerAVAssetResourceLoaderDelegate.swift 3 | // EZPlayer 4 | // 5 | // Created by yangjun zhu on 2017/3/6. 6 | // Copyright © 2017年 yangjun zhu. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import AVFoundation 11 | 12 | 13 | public class EZPlayerAVAssetResourceLoaderDelegate: NSObject { 14 | public var customScheme: String{ 15 | return "" 16 | } 17 | 18 | public unowned let asset: AVURLAsset 19 | 20 | public let delegateQueue: DispatchQueue? 21 | 22 | public init(asset: AVURLAsset,delegateQueue: DispatchQueue? = nil) { 23 | 24 | self.asset = asset 25 | self.delegateQueue = delegateQueue 26 | super.init() 27 | self.asset.resourceLoader.setDelegate(self, queue: self.delegateQueue) 28 | 29 | } 30 | 31 | } 32 | 33 | 34 | extension EZPlayerAVAssetResourceLoaderDelegate: AVAssetResourceLoaderDelegate{ 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayerContentItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EZPlayerItem.swift 3 | // EZPlayer 4 | // 5 | // Created by yangjun zhu on 2016/12/28. 6 | // Copyright © 2016年 yangjun zhu. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | public struct EZPlayerContentItem { 11 | var url: URL? 12 | var title: String? 13 | 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayerThumbnail.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EZPlayerThumbnail.swift 3 | // EZPlayer 4 | // 5 | // Created by yangjun zhu on 2016/12/28. 6 | // Copyright © 2016年 yangjun zhu. All rights reserved. 7 | // 8 | 9 | import AVFoundation 10 | 11 | /// 返回的截图对象 12 | public struct EZPlayerThumbnail { 13 | public var requestedTime: CMTime 14 | public var image: UIImage? 15 | public var actualTime: CMTime 16 | public var result: AVAssetImageGenerator.Result 17 | public var error: Error? 18 | } 19 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayerTransport.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EZPlayerTransport.swift 3 | // EZPlayer 4 | // 5 | // Created by yangjun zhu on 2016/12/28. 6 | // Copyright © 2016年 yangjun zhu. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public protocol EZPlayerHorizontalPan: class { 12 | func player(_ player: EZPlayer ,progressWillChange value: TimeInterval) 13 | func player(_ player: EZPlayer ,progressChanging value: TimeInterval) 14 | func player(_ player: EZPlayer ,progressDidChange value: TimeInterval) 15 | } 16 | 17 | public protocol EZPlayerGestureRecognizer: class { 18 | func player(_ player: EZPlayer ,singleTapGestureTapped singleTap: UITapGestureRecognizer) 19 | func player(_ player: EZPlayer ,doubleTapGestureTapped doubleTap: UITapGestureRecognizer) 20 | } 21 | 22 | 23 | public protocol EZPlayerCustomAction:class { 24 | var player: EZPlayer? { get set } 25 | var autohidedControlViews: [UIView] { get set } 26 | 27 | 28 | func playPauseButtonPressed(_ sender: Any) 29 | func fullEmbeddedScreenButtonPressed(_ sender: Any) 30 | func audioSubtitleCCButtonPressed(_ sender: Any) 31 | func backButtonPressed(_ sender: Any) 32 | } 33 | 34 | 35 | public protocol EZPlayerCustom: EZPlayerDelegate,EZPlayerCustomAction,EZPlayerHorizontalPan,EZPlayerGestureRecognizer { 36 | } 37 | 38 | -------------------------------------------------------------------------------- /Pods/EZPlayer/EZPlayer/EZPlayerTransportExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EZPlayerTransportExtension.swift 3 | // EZPlayer 4 | // 5 | // Created by yangjun zhu on 2016/12/28. 6 | // Copyright © 2016年 yangjun zhu. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | -------------------------------------------------------------------------------- /Pods/EZPlayer/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016-2017 Yangjun (https://github.com/easyui/EZPlayer) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pods/Kingfisher/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019 Wei Wang 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /Pods/MJRefresh/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2015 MJRefresh (https://github.com/CoderMJLee/MJRefresh) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoFooter.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshFooter.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshAutoFooter : MJRefreshFooter 18 | /** 是否自动刷新(默认为YES) */ 19 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; 20 | 21 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 22 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh MJRefreshDeprecated("请使用triggerAutomaticallyRefreshPercent属性"); 23 | 24 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 25 | @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; 26 | 27 | /** 自动触发次数, 默认为 1, 仅在拖拽 ScrollView 时才生效, 28 | 29 | 如果为 -1, 则为无限触发 30 | */ 31 | @property (nonatomic) NSInteger autoTriggerTimes; 32 | @end 33 | 34 | NS_ASSUME_NONNULL_END 35 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackFooter.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshFooter.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshBackFooter : MJRefreshFooter 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // MJRefreshFooter.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/3/5. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 上拉刷新控件 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshComponent.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshFooter : MJRefreshComponent 18 | /** 创建footer */ 19 | + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentAction)refreshingBlock; 20 | /** 创建footer */ 21 | + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 22 | 23 | /** 提示没有更多的数据 */ 24 | - (void)endRefreshingWithNoMoreData; 25 | - (void)noticeNoMoreData MJRefreshDeprecated("使用endRefreshingWithNoMoreData"); 26 | 27 | /** 重置没有更多的数据(消除没有更多数据的状态) */ 28 | - (void)resetNoMoreData; 29 | 30 | /** 忽略多少scrollView的contentInset的bottom */ 31 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetBottom; 32 | 33 | /** 自动根据有无数据来显示和隐藏(有数据就显示,没有数据隐藏。默认是NO) */ 34 | @property (assign, nonatomic, getter=isAutomaticallyHidden) BOOL automaticallyHidden MJRefreshDeprecated("已废弃此属性,开发者请自行控制footer的显示和隐藏"); 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // MJRefreshHeader.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/3/4. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 下拉刷新控件:负责监控用户下拉的状态 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshComponent.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshHeader : MJRefreshComponent 18 | /** 创建header */ 19 | + (instancetype)headerWithRefreshingBlock:(MJRefreshComponentAction)refreshingBlock; 20 | /** 创建header */ 21 | + (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 22 | 23 | /** 这个key用来存储上一次下拉刷新成功的时间 */ 24 | @property (copy, nonatomic) NSString *lastUpdatedTimeKey; 25 | /** 上一次下拉刷新成功的时间 */ 26 | @property (strong, nonatomic, readonly, nullable) NSDate *lastUpdatedTime; 27 | 28 | /** 忽略多少scrollView的contentInset的top */ 29 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; 30 | 31 | /** 默认是关闭状态, 如果遇到 CollectionView 的动画异常问题可以尝试打开 */ 32 | @property (nonatomic) BOOL isCollectionViewAnimationBug; 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Base/MJRefreshTrailer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshTrailer.h 3 | // MJRefresh 4 | // 5 | // Created by kinarobin on 2020/5/3. 6 | // Copyright © 2020 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshComponent.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshTrailer : MJRefreshComponent 18 | 19 | /** 创建trailer*/ 20 | + (instancetype)trailerWithRefreshingBlock:(MJRefreshComponentAction)refreshingBlock; 21 | /** 创建trailer */ 22 | + (instancetype)trailerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 23 | 24 | /** 忽略多少scrollView的contentInset的right */ 25 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetRight; 26 | 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoGifFooter.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshAutoStateFooter.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter 18 | @property (weak, nonatomic, readonly) UIImageView *gifView; 19 | 20 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 21 | - (instancetype)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 22 | - (instancetype)setImages:(NSArray *)images forState:(MJRefreshState)state; 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoNormalFooter.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshAutoStateFooter.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter 18 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 19 | 20 | /** 菊花的样式 */ 21 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 22 | @end 23 | 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoStateFooter.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshAutoFooter.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshAutoStateFooter : MJRefreshAutoFooter 18 | /** 文字距离圈圈、箭头的距离 */ 19 | @property (assign, nonatomic) CGFloat labelLeftInset; 20 | /** 显示刷新状态的label */ 21 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 22 | 23 | /** 设置state状态下的文字 */ 24 | - (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state; 25 | 26 | /** 隐藏刷新状态的文字 */ 27 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackGifFooter.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshBackStateFooter.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshBackGifFooter : MJRefreshBackStateFooter 18 | @property (weak, nonatomic, readonly) UIImageView *gifView; 19 | 20 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 21 | - (instancetype)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 22 | - (instancetype)setImages:(NSArray *)images forState:(MJRefreshState)state; 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackNormalFooter.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshBackStateFooter.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter 18 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 19 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 20 | 21 | /** 菊花的样式 */ 22 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackStateFooter.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshBackFooter.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshBackStateFooter : MJRefreshBackFooter 18 | /** 文字距离圈圈、箭头的距离 */ 19 | @property (assign, nonatomic) CGFloat labelLeftInset; 20 | /** 显示刷新状态的label */ 21 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 22 | /** 设置state状态下的文字 */ 23 | - (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state; 24 | 25 | /** 获取state状态下的title */ 26 | - (NSString *)titleForState:(MJRefreshState)state; 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshGifHeader.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshStateHeader.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshGifHeader : MJRefreshStateHeader 18 | @property (weak, nonatomic, readonly) UIImageView *gifView; 19 | 20 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 21 | - (instancetype)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 22 | - (instancetype)setImages:(NSArray *)images forState:(MJRefreshState)state; 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshNormalHeader.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshStateHeader.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshNormalHeader : MJRefreshStateHeader 18 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 19 | @property (weak, nonatomic, readonly) UIActivityIndicatorView *loadingView; 20 | 21 | 22 | /** 菊花的样式 */ 23 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle MJRefreshDeprecated("first deprecated in 3.2.2 - Use `loadingView` property"); 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Header/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshStateHeader.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshHeader.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshStateHeader : MJRefreshHeader 18 | #pragma mark - 刷新时间相关 19 | /** 利用这个block来决定显示的更新时间文字 */ 20 | @property (copy, nonatomic, nullable) NSString *(^lastUpdatedTimeText)(NSDate * _Nullable lastUpdatedTime); 21 | /** 显示上一次刷新时间的label */ 22 | @property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; 23 | 24 | #pragma mark - 状态相关 25 | /** 文字距离圈圈、箭头的距离 */ 26 | @property (assign, nonatomic) CGFloat labelLeftInset; 27 | /** 显示刷新状态的label */ 28 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 29 | /** 设置state状态下的文字 */ 30 | - (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state; 31 | @end 32 | 33 | @interface MJRefreshStateHeader (ChainingGrammar) 34 | 35 | - (instancetype)modifyLastUpdatedTimeText:(NSString * (^)(NSDate * _Nullable lastUpdatedTime))handler; 36 | 37 | @end 38 | 39 | NS_ASSUME_NONNULL_END 40 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshNormalTrailer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshNormalTrailer.h 3 | // MJRefresh 4 | // 5 | // Created by kinarobin on 2020/5/3. 6 | // Copyright © 2020 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshStateTrailer.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface MJRefreshNormalTrailer : MJRefreshStateTrailer 18 | 19 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/Custom/Trailer/MJRefreshStateTrailer.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshStateTrailer.h 3 | // MJRefresh 4 | // 5 | // Created by kinarobin on 2020/5/3. 6 | // Copyright © 2020 小码哥. All rights reserved. 7 | // 8 | 9 | #if __has_include() 10 | #import 11 | #else 12 | #import "MJRefreshTrailer.h" 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | 18 | @interface MJRefreshStateTrailer : MJRefreshTrailer 19 | 20 | #pragma mark - 状态相关 21 | /** 显示刷新状态的label */ 22 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 23 | /** 设置state状态下的文字 */ 24 | - (instancetype)setTitle:(NSString *)title forState:(MJRefreshState)state; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ko.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "MJRefreshHeaderIdleText" = "아래로 당겨 새로고침"; 2 | "MJRefreshHeaderPullingText" = "놓으면 새로고침"; 3 | "MJRefreshHeaderRefreshingText" = "로딩중..."; 4 | 5 | "MJRefreshAutoFooterIdleText" = "탭 또는 위로 당겨 로드함"; 6 | "MJRefreshAutoFooterRefreshingText" = "로딩중..."; 7 | "MJRefreshAutoFooterNoMoreDataText" = "더이상 데이터 없음"; 8 | 9 | "MJRefreshBackFooterIdleText" = "위로 당겨 더 로드 가능"; 10 | "MJRefreshBackFooterPullingText" = "놓으면 더 로드됨."; 11 | "MJRefreshBackFooterRefreshingText" = "로딩중..."; 12 | "MJRefreshBackFooterNoMoreDataText" = "더이상 데이터 없음"; 13 | 14 | "MJRefreshHeaderLastTimeText" = "마지막 업데이트: "; 15 | "MJRefreshHeaderDateTodayText" = "오늘"; 16 | "MJRefreshHeaderNoneLastDateText" = "기록 없음"; 17 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ru.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/ru.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/trail_arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/trail_arrow@2x.png -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/uk.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/uk.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefresh.bundle/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "MJRefreshHeaderIdleText" = "下拉可以刷新"; 2 | "MJRefreshHeaderPullingText" = "鬆開立即刷新"; 3 | "MJRefreshHeaderRefreshingText" = "正在刷新數據中..."; 4 | 5 | "MJRefreshTrailerIdleText" = "滑動查看圖文詳情"; 6 | "MJRefreshTrailerPullingText" = "釋放查看圖文詳情"; 7 | 8 | "MJRefreshAutoFooterIdleText" = "點擊或上拉加載更多"; 9 | "MJRefreshAutoFooterRefreshingText" = "正在加載更多的數據..."; 10 | "MJRefreshAutoFooterNoMoreDataText" = "已經全部加載完畢"; 11 | 12 | "MJRefreshBackFooterIdleText" = "上拉可以加載更多"; 13 | "MJRefreshBackFooterPullingText" = "鬆開立即加載更多"; 14 | "MJRefreshBackFooterRefreshingText" = "正在加載更多的數據..."; 15 | "MJRefreshBackFooterNoMoreDataText" = "已經全部加載完畢"; 16 | 17 | "MJRefreshHeaderLastTimeText" = "最後更新:"; 18 | "MJRefreshHeaderDateTodayText" = "今天"; 19 | "MJRefreshHeaderNoneLastDateText" = "無記錄"; 20 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefreshConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshConfig.h 3 | // 4 | // Created by Frank on 2018/11/27. 5 | // Copyright © 2018 小码哥. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface MJRefreshConfig : NSObject 13 | 14 | /** 默认使用的语言版本, 默认为 nil. 将随系统的语言自动改变 */ 15 | @property (copy, nonatomic, nullable) NSString *languageCode; 16 | 17 | /** 默认使用的语言资源文件名, 默认为 nil, 即默认的 Localizable.strings. 18 | 19 | - Attention: 文件名不包含后缀.strings 20 | */ 21 | @property (copy, nonatomic, nullable) NSString *i18nFilename; 22 | /** i18n 多语言资源加载自定义 Bundle. 23 | 24 | - Attention: 默认为 nil 采用内置逻辑. 这里设置后将忽略内置逻辑的多语言模式, 采用自定义的多语言 bundle 25 | */ 26 | @property (nonatomic, nullable) NSBundle *i18nBundle; 27 | 28 | /** Singleton Config instance */ 29 | @property (class, nonatomic, readonly) MJRefreshConfig *defaultConfig; 30 | 31 | - (instancetype)init NS_UNAVAILABLE; 32 | + (instancetype)new NS_UNAVAILABLE; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/MJRefreshConfig.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshConfig.m 3 | // 4 | // Created by Frank on 2018/11/27. 5 | // Copyright © 2018 小码哥. All rights reserved. 6 | // 7 | 8 | #import "MJRefreshConfig.h" 9 | #import "MJRefreshConst.h" 10 | #import "NSBundle+MJRefresh.h" 11 | 12 | @interface MJRefreshConfig (Bundle) 13 | 14 | + (void)resetLanguageResourceCache; 15 | 16 | @end 17 | 18 | @implementation MJRefreshConfig 19 | 20 | static MJRefreshConfig *mj_RefreshConfig = nil; 21 | 22 | + (instancetype)defaultConfig { 23 | static dispatch_once_t onceToken; 24 | dispatch_once(&onceToken, ^{ 25 | mj_RefreshConfig = [[self alloc] init]; 26 | }); 27 | return mj_RefreshConfig; 28 | } 29 | 30 | - (void)setLanguageCode:(NSString *)languageCode { 31 | if ([languageCode isEqualToString:_languageCode]) { 32 | return; 33 | } 34 | 35 | _languageCode = languageCode; 36 | // 重置语言资源 37 | [MJRefreshConfig resetLanguageResourceCache]; 38 | [NSNotificationCenter.defaultCenter 39 | postNotificationName:MJRefreshDidChangeLanguageNotification object:self]; 40 | } 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/NSBundle+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBundle+MJRefresh.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 16/6/13. 6 | // Copyright © 2016年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface NSBundle (MJRefresh) 14 | + (instancetype)mj_refreshBundle; 15 | + (UIImage *)mj_arrowImage; 16 | + (UIImage *)mj_trailArrowImage; 17 | + (NSString *)mj_localizedStringForKey:(NSString *)key value:(nullable NSString *)value; 18 | + (NSString *)mj_localizedStringForKey:(NSString *)key; 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UICollectionViewLayout+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 2 | // UICollectionViewLayout+MJRefresh.h 3 | // 4 | // 该类是用来解决 Footer 在底端加载完成后, 仍停留在原处的 bug. 5 | // 此问题出现在 iOS 14 及以下系统上. 6 | // Reference: https://github.com/CoderMJLee/MJRefresh/issues/1552 7 | // 8 | // Created by jiasong on 2021/11/15. 9 | // Copyright © 2021 小码哥. All rights reserved. 10 | // 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface UICollectionViewLayout (MJRefresh) 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // UIScrollView+Extension.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 14-5-28. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface UIScrollView (MJExtension) 14 | @property (readonly, nonatomic) UIEdgeInsets mj_inset; 15 | 16 | @property (assign, nonatomic) CGFloat mj_insetT; 17 | @property (assign, nonatomic) CGFloat mj_insetB; 18 | @property (assign, nonatomic) CGFloat mj_insetL; 19 | @property (assign, nonatomic) CGFloat mj_insetR; 20 | 21 | @property (assign, nonatomic) CGFloat mj_offsetX; 22 | @property (assign, nonatomic) CGFloat mj_offsetY; 23 | 24 | @property (assign, nonatomic) CGFloat mj_contentW; 25 | @property (assign, nonatomic) CGFloat mj_contentH; 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // UIScrollView+MJRefresh.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 15/3/4. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 给ScrollView增加下拉刷新、上拉刷新、 左滑刷新的功能 8 | 9 | #import 10 | #if __has_include() 11 | #import 12 | #else 13 | #import "MJRefreshConst.h" 14 | #endif 15 | 16 | @class MJRefreshHeader, MJRefreshFooter, MJRefreshTrailer; 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @interface UIScrollView (MJRefresh) 21 | /** 下拉刷新控件 */ 22 | @property (strong, nonatomic, nullable) MJRefreshHeader *mj_header; 23 | @property (strong, nonatomic, nullable) MJRefreshHeader *header MJRefreshDeprecated("使用mj_header"); 24 | /** 上拉刷新控件 */ 25 | @property (strong, nonatomic, nullable) MJRefreshFooter *mj_footer; 26 | @property (strong, nonatomic, nullable) MJRefreshFooter *footer MJRefreshDeprecated("使用mj_footer"); 27 | 28 | /** 左滑刷新控件 */ 29 | @property (strong, nonatomic, nullable) MJRefreshTrailer *mj_trailer; 30 | 31 | #pragma mark - other 32 | - (NSInteger)mj_totalDataCount; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Pods/MJRefresh/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // UIView+Extension.h 3 | // MJRefresh 4 | // 5 | // Created by MJ Lee on 14-5-28. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface UIView (MJExtension) 14 | @property (assign, nonatomic) CGFloat mj_x; 15 | @property (assign, nonatomic) CGFloat mj_y; 16 | @property (assign, nonatomic) CGFloat mj_w; 17 | @property (assign, nonatomic) CGFloat mj_h; 18 | @property (assign, nonatomic) CGSize mj_size; 19 | @property (assign, nonatomic) CGPoint mj_origin; 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Pods/SnapKit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2015-2018 SwifterSwift (https://github.com/swifterswift) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/AppKit/NSColorExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSColorExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Max Haertwig on 10/06/19. 6 | // Copyright © 2019 SwifterSwift 7 | // 8 | 9 | #if canImport(AppKit) && !targetEnvironment(macCatalyst) 10 | import AppKit 11 | 12 | public extension NSColor { 13 | 14 | /// SwifterSwift: Create an NSColor with different colors for light and dark mode. 15 | /// 16 | /// - Parameters: 17 | /// - light: Color to use in light/unspecified mode. 18 | /// - dark: Color to use in dark mode. 19 | @available(OSX 10.15, *) 20 | convenience init(light: NSColor, dark: NSColor) { 21 | self.init(name: nil, dynamicProvider: { $0.name == .darkAqua ? dark : light }) 22 | } 23 | 24 | } 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/CoreGraphics/CGAffineTransformExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CGAffineTransformExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Guy Kogus on 19/3/20. 6 | // Copyright © 2020 SwifterSwift 7 | // 8 | 9 | #if canImport(CoreGraphics) 10 | import CoreGraphics 11 | 12 | #if canImport(QuartzCore) 13 | 14 | import QuartzCore 15 | 16 | // MARK: - Methods 17 | public extension CGAffineTransform { 18 | 19 | /// SwifterSwift: Returns a transform with the same effect as the receiver. 20 | @inlinable 21 | func transform3D() -> CATransform3D { CATransform3DMakeAffineTransform(self) } 22 | 23 | } 24 | 25 | #endif 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/CoreGraphics/CGColorExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CGColorExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Omar Albeik on 03/02/2017. 6 | // Copyright © 2017 SwifterSwift 7 | // 8 | 9 | #if canImport(CoreGraphics) 10 | import CoreGraphics 11 | 12 | #if canImport(UIKit) 13 | import UIKit 14 | #endif 15 | 16 | #if canImport(AppKit) 17 | import AppKit 18 | #endif 19 | 20 | // MARK: - Properties 21 | public extension CGColor { 22 | 23 | #if canImport(UIKit) 24 | /// SwifterSwift: UIColor. 25 | var uiColor: UIColor? { 26 | return UIColor(cgColor: self) 27 | } 28 | #endif 29 | 30 | #if canImport(AppKit) && !targetEnvironment(macCatalyst) 31 | /// SwifterSwift: NSColor. 32 | var nsColor: NSColor? { 33 | return NSColor(cgColor: self) 34 | } 35 | #endif 36 | 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/CoreLocation/CLLocationArrayExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CLLocationArrayExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Trevor Phillips on 09/01/20. 6 | // Copyright © 2020 SwifterSwift 7 | // 8 | 9 | #if canImport(CoreLocation) 10 | import CoreLocation 11 | 12 | // MARK: - Methods 13 | public extension Array where Element: CLLocation { 14 | 15 | /// SwifterSwift: Calculates the sum of distances between each location in the array based on the curvature of the earth. 16 | /// 17 | /// - Parameter unitLength: The unit of length to return the distance in. 18 | /// - Returns: The distance in the specified unit. 19 | @available(tvOS 10.0, macOS 10.12, watchOS 3.0, *) 20 | func distance(unitLength unit: UnitLength) -> Measurement { 21 | guard count > 1 else { 22 | return Measurement(value: 0.0, unit: unit) 23 | } 24 | var distance = 0.0 25 | for idx in 0.. 31 19 | /// 20 | /// - Parameter date: the date form which the number of days in month is calculated. 21 | /// - Returns: The number of days in the month of 'Date'. 22 | func numberOfDaysInMonth(for date: Date) -> Int { 23 | return range(of: .day, in: .month, for: date)!.count 24 | } 25 | 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/MapKit/MKPolylineExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MKPolylineExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Shai Mishali on 3/8/18. 6 | // Copyright © 2018 SwifterSwift 7 | // 8 | 9 | #if canImport(MapKit) && !os(watchOS) 10 | import MapKit 11 | 12 | // MARK: - Initializers 13 | @available(tvOS 9.2, *) 14 | public extension MKPolyline { 15 | 16 | /// SwifterSwift: Create a new MKPolyline from a provided Array of coordinates. 17 | /// 18 | /// - Parameter coordinates: Array of CLLocationCoordinate2D(s). 19 | convenience init(coordinates: [CLLocationCoordinate2D]) { 20 | var refCoordinates = coordinates 21 | self.init(coordinates: &refCoordinates, count: refCoordinates.count) 22 | } 23 | 24 | } 25 | 26 | // MARK: - Properties 27 | @available(tvOS 9.2, *) 28 | public extension MKPolyline { 29 | 30 | /// SwifterSwift: Return an Array of coordinates representing the provided polyline. 31 | var coordinates: [CLLocationCoordinate2D] { 32 | var coords = [CLLocationCoordinate2D](repeating: kCLLocationCoordinate2DInvalid, count: pointCount) 33 | getCoordinates(&coords, range: NSRange(location: 0, length: pointCount)) 34 | return coords 35 | } 36 | 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/SceneKit/SCNGeometryExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SCNGeometryExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Max Härtwig on 06.04.19. 6 | // Copyright © 2019 SwifterSwift 7 | // 8 | 9 | #if canImport(SceneKit) 10 | import SceneKit 11 | 12 | // MARK: - Properties 13 | public extension SCNGeometry { 14 | 15 | /// SwifterSwift: Returns the size of the geometry's bounding box. 16 | var boundingSize: SCNVector3 { 17 | return (boundingBox.max - boundingBox.min).absolute 18 | } 19 | 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/SceneKit/SCNMaterialExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SCNMaterialExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Max Härtwig on 06.04.19. 6 | // Copyright © 2019 SwifterSwift 7 | // 8 | 9 | #if canImport(SceneKit) 10 | import SceneKit 11 | 12 | // MARK: - Methods 13 | public extension SCNMaterial { 14 | 15 | /// SwifterSwift: Initializes a SCNMaterial with a specific diffuse color 16 | /// 17 | /// - Parameter color: diffuse color 18 | convenience init(color: Color) { 19 | self.init() 20 | diffuse.contents = color 21 | } 22 | 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/SpriteKit/SKNodeExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SKNodeExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Olivia Brown on 5/28/18. 6 | // Copyright © 2018 SwifterSwift 7 | // 8 | 9 | #if canImport(SpriteKit) 10 | import SpriteKit 11 | 12 | // MARK: - Methods 13 | public extension SKNode { 14 | 15 | /// SwifterSwift: Return an array of all SKNode descendants 16 | /// 17 | /// mySKNode.descendants() -> [childNodeOne, childNodeTwo] 18 | /// 19 | func descendants() -> [SKNode] { 20 | return children + children.reduce(into: [SKNode]()) { $0 += $1.descendants() } 21 | } 22 | 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/StoreKit/SKProductExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SKProductExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Batuhan Saka on 26.12.2019. 6 | // Copyright © 2019 SwifterSwift 7 | // 8 | 9 | #if canImport(StoreKit) 10 | import StoreKit 11 | 12 | @available(watchOS 6.2, *) 13 | public extension SKProduct { 14 | 15 | private static let priceFormatter: NumberFormatter = { 16 | let priceFormatter = NumberFormatter() 17 | priceFormatter.numberStyle = .currency 18 | return priceFormatter 19 | }() 20 | 21 | /// SwifterSwift: Localized price of SKProduct 22 | var localizedPrice: String? { 23 | let formatter = SKProduct.priceFormatter 24 | formatter.locale = priceLocale 25 | return formatter.string(from: price) 26 | } 27 | 28 | } 29 | #endif 30 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/SwiftStdlib/BidirectionalCollectionExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BidirectionalCollectionExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Quentin Jin on 2018/10/13. 6 | // Copyright © 2018 SwifterSwift 7 | // 8 | 9 | // MARK: - Methods 10 | public extension BidirectionalCollection { 11 | 12 | /// SwifterSwift: Returns the element at the specified position. If offset is negative, the `n`th element from the end will be returned where `n` is the result of `abs(distance)`. 13 | /// 14 | /// let arr = [1, 2, 3, 4, 5] 15 | /// arr[offset: 1] -> 2 16 | /// arr[offset: -2] -> 4 17 | /// 18 | /// - Parameter distance: The distance to offset. 19 | subscript(offset distance: Int) -> Element { 20 | let index = distance >= 0 ? startIndex : endIndex 21 | return self[indices.index(index, offsetBy: distance)] 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/SwiftStdlib/BoolExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BoolExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Omar Albeik on 07/12/2016. 6 | // Copyright © 2016 SwifterSwift 7 | // 8 | 9 | // MARK: - Properties 10 | public extension Bool { 11 | 12 | /// SwifterSwift: Return 1 if true, or 0 if false. 13 | /// 14 | /// false.int -> 0 15 | /// true.int -> 1 16 | /// 17 | var int: Int { 18 | return self ? 1 : 0 19 | } 20 | 21 | /// SwifterSwift: Return "true" if true, or "false" if false. 22 | /// 23 | /// false.string -> "false" 24 | /// true.string -> "true" 25 | /// 26 | var string: String { 27 | return self ? "true" : "false" 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/SwiftStdlib/DecodableExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DecodableExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Mustafa GUNES on 16.01.2020. 6 | // Copyright © 2020 SwifterSwift 7 | // 8 | 9 | #if canImport(Foundation) 10 | import Foundation 11 | #endif 12 | 13 | public extension Decodable { 14 | 15 | #if canImport(Foundation) 16 | /// SwifterSwift: Parsing the model in Decodable type 17 | /// - Parameters: 18 | /// - data: Data. 19 | /// - decoder: JSONDecoder. Initialized by default 20 | init?(from data: Data, using decoder: JSONDecoder = .init()) { 21 | guard let parsed = try? decoder.decode(Self.self, from: data) else { return nil } 22 | self = parsed 23 | } 24 | #endif 25 | } 26 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/SwiftStdlib/RandomAccessCollectionExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RandomAccessCollectionExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Luciano Almeida on 7/13/18. 6 | // Copyright © 2018 SwifterSwift 7 | // 8 | 9 | public extension RandomAccessCollection where Element: Equatable { 10 | 11 | /// SwifterSwift: All indices of specified item. 12 | /// 13 | /// [1, 2, 2, 3, 4, 2, 5].indices(of 2) -> [1, 2, 5] 14 | /// [1.2, 2.3, 4.5, 3.4, 4.5].indices(of 2.3) -> [1] 15 | /// ["h", "e", "l", "l", "o"].indices(of "l") -> [2, 3] 16 | /// 17 | /// - Parameter item: item to check. 18 | /// - Returns: an array with all indices of the given item. 19 | func indices(of item: Element) -> [Index] { 20 | var indices: [Index] = [] 21 | var idx = startIndex 22 | while idx < endIndex { 23 | if self[idx] == item { 24 | indices.append(idx) 25 | } 26 | formIndex(after: &idx) 27 | } 28 | return indices 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UIActivityExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIActivityExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Hannes Staffler on 07.10.18. 6 | // Copyright © 2018 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) && os(iOS) 10 | import UIKit 11 | 12 | // MARK: - ActivityType 13 | public extension UIActivity.ActivityType { 14 | 15 | /// SwifterSwift: AddToiCloudDrive 16 | static let addToiCloudDrive = UIActivity.ActivityType("com.apple.CloudDocsUI.AddToiCloudDrive") 17 | 18 | /// SwifterSwift: WhatsApp share extension 19 | static let postToWhatsApp = UIActivity.ActivityType("net.whatsapp.WhatsApp.ShareExtension") 20 | 21 | /// SwifterSwift: LinkedIn share extension 22 | static let postToLinkedIn = UIActivity.ActivityType("com.linkedin.LinkedIn.ShareExtension") 23 | 24 | /// SwifterSwift: XING share extension 25 | static let postToXing = UIActivity.ActivityType("com.xing.XING.Xing-Share") 26 | 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UIColorExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIColorExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Max Haertwig on 10/06/19. 6 | // Copyright © 2019 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) 10 | import UIKit 11 | 12 | public extension UIColor { 13 | 14 | #if !os(watchOS) 15 | /// SwifterSwift: Create a UIColor with different colors for light and dark mode. 16 | /// 17 | /// - Parameters: 18 | /// - light: Color to use in light/unspecified mode. 19 | /// - dark: Color to use in dark mode. 20 | @available(iOS 13.0, tvOS 13.0, *) 21 | convenience init(light: UIColor, dark: UIColor) { 22 | self.init(dynamicProvider: { $0.userInterfaceStyle == .dark ? dark : light }) 23 | } 24 | #endif 25 | 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UIDatePickerExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIDatePickerExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Omar Albeik on 12/9/17. 6 | // Copyright © 2017 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) && os(iOS) 10 | import UIKit 11 | 12 | // MARK: - Properties 13 | public extension UIDatePicker { 14 | 15 | /// SwifterSwift: Text color of UIDatePicker. 16 | var textColor: UIColor? { 17 | set { 18 | setValue(newValue, forKeyPath: "textColor") 19 | } 20 | get { 21 | return value(forKeyPath: "textColor") as? UIColor 22 | } 23 | } 24 | 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UIFontExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIFontExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Benjamin Meyer on 9/16/17. 6 | // Copyright © 2017 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) 10 | import UIKit 11 | 12 | // MARK: - Properties 13 | public extension UIFont { 14 | 15 | /// SwifterSwift: Font as bold font 16 | var bold: UIFont { 17 | return UIFont(descriptor: fontDescriptor.withSymbolicTraits(.traitBold)!, size: 0) 18 | } 19 | 20 | /// SwifterSwift: Font as italic font 21 | var italic: UIFont { 22 | return UIFont(descriptor: fontDescriptor.withSymbolicTraits(.traitItalic)!, size: 0) 23 | } 24 | 25 | /// SwifterSwift: Font as monospaced font 26 | /// 27 | /// UIFont.preferredFont(forTextStyle: .body).monospaced 28 | /// 29 | var monospaced: UIFont { 30 | let settings = [[UIFontDescriptor.FeatureKey.featureIdentifier: kNumberSpacingType, UIFontDescriptor.FeatureKey.typeIdentifier: kMonospacedNumbersSelector]] 31 | 32 | let attributes = [UIFontDescriptor.AttributeName.featureSettings: settings] 33 | let newDescriptor = fontDescriptor.addingAttributes(attributes) 34 | return UIFont(descriptor: newDescriptor, size: 0) 35 | } 36 | 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UIGestureRecognizerExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIGestureRecognizerExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Morgan Dock on 4/21/18. 6 | // Copyright © 2018 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) && !os(watchOS) 10 | import UIKit 11 | 12 | // MARK: - Methods 13 | public extension UIGestureRecognizer { 14 | 15 | /// SwifterSwift: Remove Gesture Recognizer from its view. 16 | func removeFromView() { 17 | view?.removeGestureRecognizer(self) 18 | } 19 | 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UILayoutPriorityExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UILayoutPriorityExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by diamantidis on 8/19/18. 6 | // Copyright © 2018 SwifterSwift. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import UIKit 11 | 12 | extension UILayoutPriority: ExpressibleByFloatLiteral, ExpressibleByIntegerLiteral { 13 | 14 | // MARK: - Initializers 15 | 16 | /// SwifterSwift: Initialize `UILayoutPriority` with a float literal 17 | /// 18 | /// constraint.priority = 0.5 19 | /// 20 | /// - Parameter value: The float value of the constraint 21 | public init(floatLiteral value: Float) { 22 | self.init(rawValue: value) 23 | } 24 | 25 | /// SwifterSwift: Initialize `UILayoutPriority` with an integer literal 26 | /// 27 | /// constraint.priority = 5 28 | /// 29 | /// - Parameter value: The integer value of the constraint 30 | public init(integerLiteral value: Int) { 31 | self.init(rawValue: Float(value)) 32 | } 33 | 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UINavigationItemExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UINavigationItemExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Omar Albeik on 9/28/16. 6 | // Copyright © 2016 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) && !os(watchOS) 10 | import UIKit 11 | 12 | // MARK: - Methods 13 | public extension UINavigationItem { 14 | 15 | /// SwifterSwift: Replace title label with an image in navigation item. 16 | /// 17 | /// - Parameter image: UIImage to replace title with. 18 | func replaceTitle(with image: UIImage) { 19 | let logoImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 100, height: 30)) 20 | logoImageView.contentMode = .scaleAspectFit 21 | logoImageView.image = image 22 | titleView = logoImageView 23 | } 24 | 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UIRefreshControlExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIRefreshControlExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by ratul sharker on 7/24/18. 6 | // Copyright © 2018 SwifterSwift 7 | // 8 | 9 | #if os(iOS) 10 | import UIKit 11 | 12 | // MARK: - Methods 13 | public extension UIRefreshControl { 14 | 15 | /// SwifterSwift: Programatically begin refresh control inside of UITableView. 16 | /// 17 | /// - Parameters: 18 | /// - tableView: UITableView instance, inside which the refresh control is contained. 19 | /// - animated: Boolean, indicates that is the content offset changing should be animated or not. 20 | /// - sendAction: Boolean, indicates that should it fire sendActions method for valueChanged UIControlEvents 21 | func beginRefreshing(in tableView: UITableView, animated: Bool, sendAction: Bool = false) { 22 | // https://stackoverflow.com/questions/14718850/14719658#14719658 23 | assert(superview == tableView, "Refresh control does not belong to the receiving table view") 24 | 25 | beginRefreshing() 26 | let offsetPoint = CGPoint(x: 0, y: -frame.height) 27 | tableView.setContentOffset(offsetPoint, animated: animated) 28 | 29 | if sendAction { 30 | sendActions(for: .valueChanged) 31 | } 32 | } 33 | 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UIScrollViewExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIScrollViewExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by camila oliveira on 22/04/18. 6 | // Copyright © 2018 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) && !os(watchOS) 10 | import UIKit 11 | 12 | // MARK: - Methods 13 | public extension UIScrollView { 14 | 15 | /// SwifterSwift: Takes a snapshot of an entire ScrollView 16 | /// 17 | /// AnySubclassOfUIScroolView().snapshot 18 | /// UITableView().snapshot 19 | /// 20 | /// - Returns: Snapshot as UIimage for rendered ScrollView 21 | var snapshot: UIImage? { 22 | // Original Source: https://gist.github.com/thestoics/1204051 23 | UIGraphicsBeginImageContextWithOptions(contentSize, false, 0) 24 | defer { 25 | UIGraphicsEndImageContext() 26 | } 27 | guard let context = UIGraphicsGetCurrentContext() else { return nil } 28 | let previousFrame = frame 29 | frame = CGRect(origin: frame.origin, size: contentSize) 30 | layer.render(in: context) 31 | frame = previousFrame 32 | return UIGraphicsGetImageFromCurrentImageContext() 33 | } 34 | 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UISearchBarExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISearchBarExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Omar Albeik on 8/23/16. 6 | // Copyright © 2016 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) && os(iOS) 10 | import UIKit 11 | 12 | // MARK: - Properties 13 | public extension UISearchBar { 14 | 15 | /// SwifterSwift: Text field inside search bar (if applicable). 16 | var textField: UITextField? { 17 | if #available(iOS 13.0, *) { 18 | return searchTextField 19 | } 20 | let subViews = subviews.flatMap { $0.subviews } 21 | guard let textField = (subViews.filter { $0 is UITextField }).first as? UITextField else { 22 | return nil 23 | } 24 | return textField 25 | } 26 | 27 | /// SwifterSwift: Text with no spaces or new lines in beginning and end (if applicable). 28 | var trimmedText: String? { 29 | return text?.trimmingCharacters(in: .whitespacesAndNewlines) 30 | } 31 | 32 | } 33 | 34 | // MARK: - Methods 35 | public extension UISearchBar { 36 | 37 | /// SwifterSwift: Clear text. 38 | func clear() { 39 | text = "" 40 | } 41 | 42 | } 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UISegmentedControlExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISegmentedControlExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Omar Albeik on 9/28/16. 6 | // Copyright © 2016 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) && !os(watchOS) 10 | import UIKit 11 | 12 | // MARK: - Properties 13 | public extension UISegmentedControl { 14 | 15 | /// SwifterSwift: Segments titles. 16 | var segmentTitles: [String] { 17 | get { 18 | let range = 0.. Void)? = nil) { 23 | if animated { 24 | UIView.animate(withDuration: duration, animations: { 25 | self.setValue(value, animated: true) 26 | }, completion: { _ in 27 | completion?() 28 | }) 29 | } else { 30 | setValue(value, animated: false) 31 | completion?() 32 | } 33 | } 34 | 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UIStoryboardExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIStoryboardExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Steven on 2/6/17. 6 | // Copyright © 2017 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) && !os(watchOS) 10 | import UIKit 11 | 12 | // MARK: - Methods 13 | public extension UIStoryboard { 14 | 15 | /// SwifterSwift: Get main storyboard for application 16 | static var main: UIStoryboard? { 17 | let bundle = Bundle.main 18 | guard let name = bundle.object(forInfoDictionaryKey: "UIMainStoryboardFile") as? String else { return nil } 19 | return UIStoryboard(name: name, bundle: bundle) 20 | } 21 | 22 | /// SwifterSwift: Instantiate a UIViewController using its class name 23 | /// 24 | /// - Parameter name: UIViewController type 25 | /// - Returns: The view controller corresponding to specified class name 26 | func instantiateViewController(withClass name: T.Type) -> T? { 27 | return instantiateViewController(withIdentifier: String(describing: name)) as? T 28 | } 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UISwitchExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISwitchExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Omar Albeik on 08/12/2016. 6 | // Copyright © 2016 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) && os(iOS) 10 | import UIKit 11 | 12 | // MARK: - Methods 13 | public extension UISwitch { 14 | 15 | /// SwifterSwift: Toggle a UISwitch 16 | /// 17 | /// - Parameter animated: set true to animate the change (default is true) 18 | func toggle(animated: Bool = true) { 19 | setOn(!isOn, animated: animated) 20 | } 21 | 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /Pods/SwifterSwift/Sources/SwifterSwift/UIKit/UITextViewExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITextViewExtensions.swift 3 | // SwifterSwift 4 | // 5 | // Created by Omar Albeik on 9/28/16. 6 | // Copyright © 2016 SwifterSwift 7 | // 8 | 9 | #if canImport(UIKit) && !os(watchOS) 10 | import UIKit 11 | 12 | // MARK: - Methods 13 | public extension UITextView { 14 | 15 | /// SwifterSwift: Clear text. 16 | func clear() { 17 | text = "" 18 | attributedText = NSAttributedString(string: "") 19 | } 20 | 21 | /// SwifterSwift: Scroll to the bottom of text view 22 | func scrollToBottom() { 23 | // swiftlint:disable:next legacy_constructor 24 | let range = NSMakeRange((text as NSString).length - 1, 1) 25 | scrollRangeToVisible(range) 26 | } 27 | 28 | /// SwifterSwift: Scroll to the top of text view 29 | func scrollToTop() { 30 | // swiftlint:disable:next legacy_constructor 31 | let range = NSMakeRange(0, 1) 32 | scrollRangeToVisible(range) 33 | } 34 | 35 | /// SwifterSwift: Wrap to the content (Text / Attributed Text). 36 | func wrapToContent() { 37 | contentInset = .zero 38 | scrollIndicatorInsets = .zero 39 | contentOffset = .zero 40 | textContainerInset = .zero 41 | textContainer.lineFragmentPadding = 0 42 | sizeToFit() 43 | } 44 | 45 | } 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /Pods/SwiftyJSON/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Ruoyu Fu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.4.4 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Alamofire : NSObject 3 | @end 4 | @implementation PodsDummy_Alamofire 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double AlamofireVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char AlamofireVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Alamofire 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Alamofire 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.modulemap: -------------------------------------------------------------------------------- 1 | framework module Alamofire { 2 | umbrella header "Alamofire-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Alamofire 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Alamofire 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/EZPlayer/EZPlayer-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/EZPlayer/EZPlayer-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_EZPlayer : NSObject 3 | @end 4 | @implementation PodsDummy_EZPlayer 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/EZPlayer/EZPlayer-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/EZPlayer/EZPlayer-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "EZPlayer.h" 14 | 15 | FOUNDATION_EXPORT double EZPlayerVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char EZPlayerVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/EZPlayer/EZPlayer.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EZPlayer 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "AVFoundation" -framework "AVKit" -framework "Foundation" -framework "MediaPlayer" -framework "UIKit" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/EZPlayer 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/EZPlayer/EZPlayer.modulemap: -------------------------------------------------------------------------------- 1 | framework module EZPlayer { 2 | umbrella header "EZPlayer-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/EZPlayer/EZPlayer.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EZPlayer 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "AVFoundation" -framework "AVKit" -framework "Foundation" -framework "MediaPlayer" -framework "UIKit" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/EZPlayer 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.15.8 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Kingfisher : NSObject 3 | @end 4 | @implementation PodsDummy_Kingfisher 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "Kingfisher.h" 14 | 15 | FOUNDATION_EXPORT double KingfisherVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char KingfisherVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "Accelerate" -framework "CFNetwork" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Kingfisher 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher.modulemap: -------------------------------------------------------------------------------- 1 | framework module Kingfisher { 2 | umbrella header "Kingfisher-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "Accelerate" -framework "CFNetwork" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Kingfisher 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.7.5 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MJRefresh : NSObject 3 | @end 4 | @implementation PodsDummy_MJRefresh 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "MJRefreshAutoFooter.h" 14 | #import "MJRefreshBackFooter.h" 15 | #import "MJRefreshComponent.h" 16 | #import "MJRefreshFooter.h" 17 | #import "MJRefreshHeader.h" 18 | #import "MJRefreshTrailer.h" 19 | #import "MJRefreshAutoGifFooter.h" 20 | #import "MJRefreshAutoNormalFooter.h" 21 | #import "MJRefreshAutoStateFooter.h" 22 | #import "MJRefreshBackGifFooter.h" 23 | #import "MJRefreshBackNormalFooter.h" 24 | #import "MJRefreshBackStateFooter.h" 25 | #import "MJRefreshGifHeader.h" 26 | #import "MJRefreshNormalHeader.h" 27 | #import "MJRefreshStateHeader.h" 28 | #import "MJRefreshNormalTrailer.h" 29 | #import "MJRefreshStateTrailer.h" 30 | #import "MJRefresh.h" 31 | #import "MJRefreshConfig.h" 32 | #import "MJRefreshConst.h" 33 | #import "NSBundle+MJRefresh.h" 34 | #import "UICollectionViewLayout+MJRefresh.h" 35 | #import "UIScrollView+MJExtension.h" 36 | #import "UIScrollView+MJRefresh.h" 37 | #import "UIView+MJExtension.h" 38 | 39 | FOUNDATION_EXPORT double MJRefreshVersionNumber; 40 | FOUNDATION_EXPORT const unsigned char MJRefreshVersionString[]; 41 | 42 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 8 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.modulemap: -------------------------------------------------------------------------------- 1 | framework module MJRefresh { 2 | umbrella header "MJRefresh-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MJRefresh/MJRefresh.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MJRefresh 8 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_meijuplay : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_meijuplay 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-meijuplay/Pods-meijuplay-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework 3 | ${BUILT_PRODUCTS_DIR}/EZPlayer/EZPlayer.framework 4 | ${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework 5 | ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework 6 | ${BUILT_PRODUCTS_DIR}/SQLiteRepairKit/sqliterk.framework 7 | ${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework 8 | ${BUILT_PRODUCTS_DIR}/SwifterSwift/SwifterSwift.framework 9 | ${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework 10 | ${BUILT_PRODUCTS_DIR}/Toast-Swift/Toast_Swift.framework 11 | ${BUILT_PRODUCTS_DIR}/WCDB.swift/WCDBSwift.framework 12 | ${BUILT_PRODUCTS_DIR}/WCDBOptimizedSQLCipher/sqlcipher.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/EZPlayer.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Kingfisher.framework 4 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework 5 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqliterk.framework 6 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework 7 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwifterSwift.framework 8 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework 9 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Toast_Swift.framework 10 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WCDBSwift.framework 11 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlcipher.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-meijuplay/Pods-meijuplay-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework 3 | ${BUILT_PRODUCTS_DIR}/EZPlayer/EZPlayer.framework 4 | ${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework 5 | ${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework 6 | ${BUILT_PRODUCTS_DIR}/SQLiteRepairKit/sqliterk.framework 7 | ${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework 8 | ${BUILT_PRODUCTS_DIR}/SwifterSwift/SwifterSwift.framework 9 | ${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework 10 | ${BUILT_PRODUCTS_DIR}/Toast-Swift/Toast_Swift.framework 11 | ${BUILT_PRODUCTS_DIR}/WCDB.swift/WCDBSwift.framework 12 | ${BUILT_PRODUCTS_DIR}/WCDBOptimizedSQLCipher/sqlcipher.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/EZPlayer.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Kingfisher.framework 4 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework 5 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqliterk.framework 6 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework 7 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwifterSwift.framework 8 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework 9 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Toast_Swift.framework 10 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WCDBSwift.framework 11 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlcipher.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-resources-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-meijuplay/Pods-meijuplay-resources.sh 2 | ${PODS_ROOT}/UMCCommonLog/UMCommonLog/UMCommonLog.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-resources-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/UMCommonLog.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-resources-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-meijuplay/Pods-meijuplay-resources.sh -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-resources-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-resources-Release-output-files.xcfilelist -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_meijuplayVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_meijuplayVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-meijuplay/Pods-meijuplay.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_meijuplay { 2 | umbrella header "Pods-meijuplay-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SQLiteRepairKit/SQLiteRepairKit-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.2.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SQLiteRepairKit/SQLiteRepairKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SQLiteRepairKit : NSObject 3 | @end 4 | @implementation PodsDummy_SQLiteRepairKit 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SQLiteRepairKit/SQLiteRepairKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SQLiteRepairKit/SQLiteRepairKit-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "SQLiteRepairKit.h" 14 | 15 | FOUNDATION_EXPORT double sqliterkVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char sqliterkVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SQLiteRepairKit/SQLiteRepairKit.debug.xcconfig: -------------------------------------------------------------------------------- 1 | APPLICATION_EXTENSION_API_ONLY = YES 2 | CLANG_CXX_LANGUAGE_STANDARD = gnu++0x 3 | CLANG_CXX_LIBRARY = libc++ 4 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 5 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SQLiteRepairKit 6 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/WCDBOptimizedSQLCipher" 7 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 SQLITE_HAS_CODEC WCDB_BUILTIN_SQLCIPHER 8 | LIBRARY_SEARCH_PATHS[sdk=macosx*] = $(SDKROOT)/usr/lib/system 9 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "Foundation" -framework "Security" -framework "sqlcipher" 10 | PODS_BUILD_DIR = ${BUILD_DIR} 11 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 12 | PODS_ROOT = ${SRCROOT} 13 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SQLiteRepairKit 14 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 15 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 16 | SKIP_INSTALL = YES 17 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SQLiteRepairKit/SQLiteRepairKit.modulemap: -------------------------------------------------------------------------------- 1 | framework module sqliterk { 2 | umbrella header "SQLiteRepairKit-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SQLiteRepairKit/SQLiteRepairKit.release.xcconfig: -------------------------------------------------------------------------------- 1 | APPLICATION_EXTENSION_API_ONLY = YES 2 | CLANG_CXX_LANGUAGE_STANDARD = gnu++0x 3 | CLANG_CXX_LIBRARY = libc++ 4 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 5 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SQLiteRepairKit 6 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/WCDBOptimizedSQLCipher" 7 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 SQLITE_HAS_CODEC WCDB_BUILTIN_SQLCIPHER 8 | LIBRARY_SEARCH_PATHS[sdk=macosx*] = $(SDKROOT)/usr/lib/system 9 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "Foundation" -framework "Security" -framework "sqlcipher" 10 | PODS_BUILD_DIR = ${BUILD_DIR} 11 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 12 | PODS_ROOT = ${SRCROOT} 13 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SQLiteRepairKit 14 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 15 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 16 | SKIP_INSTALL = YES 17 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.0.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SnapKit : NSObject 3 | @end 4 | @implementation PodsDummy_SnapKit 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double SnapKitVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char SnapKitVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit.modulemap: -------------------------------------------------------------------------------- 1 | framework module SnapKit { 2 | umbrella header "SnapKit-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwifterSwift/SwifterSwift-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwifterSwift/SwifterSwift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SwifterSwift : NSObject 3 | @end 4 | @implementation PodsDummy_SwifterSwift 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwifterSwift/SwifterSwift-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwifterSwift/SwifterSwift-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double SwifterSwiftVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char SwifterSwiftVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwifterSwift/SwifterSwift.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwifterSwift 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwifterSwift 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwifterSwift/SwifterSwift.modulemap: -------------------------------------------------------------------------------- 1 | framework module SwifterSwift { 2 | umbrella header "SwifterSwift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwifterSwift/SwifterSwift.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwifterSwift 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwifterSwift 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 4.3.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SwiftyJSON : NSObject 3 | @end 4 | @implementation PodsDummy_SwiftyJSON 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double SwiftyJSONVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char SwiftyJSONVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftyJSON 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON.modulemap: -------------------------------------------------------------------------------- 1 | framework module SwiftyJSON { 2 | umbrella header "SwiftyJSON-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftyJSON 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftyJSON 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Toast-Swift/Toast-Swift-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.0.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Toast-Swift/Toast-Swift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Toast_Swift : NSObject 3 | @end 4 | @implementation PodsDummy_Toast_Swift 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Toast-Swift/Toast-Swift-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Toast-Swift/Toast-Swift-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Toast_SwiftVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Toast_SwiftVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Toast-Swift/Toast-Swift.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "QuartzCore" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Toast-Swift 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Toast-Swift/Toast-Swift.modulemap: -------------------------------------------------------------------------------- 1 | framework module Toast_Swift { 2 | umbrella header "Toast-Swift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Toast-Swift/Toast-Swift.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "QuartzCore" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Toast-Swift 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WCDB.swift/WCDB.swift-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.8 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WCDB.swift/WCDB.swift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_WCDB_swift : NSObject 3 | @end 4 | @implementation PodsDummy_WCDB_swift 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WCDB.swift/WCDB.swift-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WCDB.swift/WCDB.swift-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "SQLite-Bridging.h" 14 | #import "WCDB-Bridging.h" 15 | 16 | FOUNDATION_EXPORT double WCDBSwiftVersionNumber; 17 | FOUNDATION_EXPORT const unsigned char WCDBSwiftVersionString[]; 18 | 19 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WCDB.swift/WCDB.swift.modulemap: -------------------------------------------------------------------------------- 1 | framework module WCDBSwift { 2 | umbrella header "WCDB.swift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WCDBOptimizedSQLCipher/WCDBOptimizedSQLCipher-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.2.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WCDBOptimizedSQLCipher/WCDBOptimizedSQLCipher-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_WCDBOptimizedSQLCipher : NSObject 3 | @end 4 | @implementation PodsDummy_WCDBOptimizedSQLCipher 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WCDBOptimizedSQLCipher/WCDBOptimizedSQLCipher-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WCDBOptimizedSQLCipher/WCDBOptimizedSQLCipher-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "sqlite3.h" 14 | #import "fts3_tokenizer.h" 15 | 16 | FOUNDATION_EXPORT double sqlcipherVersionNumber; 17 | FOUNDATION_EXPORT const unsigned char sqlcipherVersionString[]; 18 | 19 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WCDBOptimizedSQLCipher/WCDBOptimizedSQLCipher.modulemap: -------------------------------------------------------------------------------- 1 | framework module sqlcipher { 2 | umbrella header "WCDBOptimizedSQLCipher-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Toast-Swift/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015-2017 Charles Scalesse. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a 4 | copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included 12 | in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 20 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/Conflict.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | 23 | public enum Conflict: Describable { 24 | case rollback 25 | case abort 26 | case fail 27 | case ignore 28 | case replace 29 | 30 | public var description: String { 31 | switch self { 32 | case .rollback: 33 | return "ROLLBACK" 34 | case .abort: 35 | return "ABORT" 36 | case .fail: 37 | return "FAIL" 38 | case .ignore: 39 | return "IGNORE" 40 | case .replace: 41 | return "REPLACE" 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/Describable.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | 23 | //TODO: Refactor: change all winq classes into structs 24 | public typealias Describable = CustomStringConvertible 25 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/Order.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | 23 | public struct Order: Describable { 24 | public private(set) var description: String 25 | 26 | public init(with expressionConvertible: ExpressionConvertible, by term: OrderTerm? = nil) { 27 | description = "\(expressionConvertible.asExpression().description)\(term != nil ? " "+term!.description : "")" 28 | } 29 | } 30 | 31 | extension Order: OrderConvertible { 32 | public func asOrder() -> Order { 33 | return self 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/OrderTerm.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | 23 | public enum OrderTerm: Describable { 24 | case ascending 25 | case descending 26 | 27 | public var description: String { 28 | switch self { 29 | case .ascending: 30 | return "ASC" 31 | case .descending: 32 | return "DESC" 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/StatementAttach.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | public final class StatementAttach: Statement { 23 | public private(set) var description: String = "" 24 | public var statementType: StatementType { 25 | return .attach 26 | } 27 | 28 | public init() {} 29 | 30 | @discardableResult 31 | public func attach(_ expressionConvertible: ExpressionConvertible, asSchema schema: String) -> StatementAttach { 32 | description.append("ATTACH \(expressionConvertible.asExpression().description) AS \(schema)") 33 | return self 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/StatementDetach.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | public final class StatementDetach: Statement { 23 | public private(set) var description: String = "" 24 | public var statementType: StatementType { 25 | return .detach 26 | } 27 | 28 | public init() {} 29 | 30 | @discardableResult 31 | public func detach(schema: String) -> StatementDetach { 32 | description.append("DETACH \(schema)") 33 | return self 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/StatementDropTable.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | public final class StatementDropTable: Statement { 23 | public private(set) var description: String = "" 24 | public var statementType: StatementType { 25 | return .dropTable 26 | } 27 | 28 | public init() {} 29 | 30 | public func drop(table: String, ifExists: Bool = true) -> StatementDropTable { 31 | description.append("DROP TABLE ") 32 | if ifExists { 33 | description.append("IF EXISTS ") 34 | } 35 | description.append(table) 36 | return self 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/StatementReindex.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | public final class StatementReindex: Statement { 23 | public private(set) var description: String = "" 24 | public var statementType: StatementType { 25 | return .reindex 26 | } 27 | 28 | public init() {} 29 | 30 | @discardableResult 31 | public func reindex(_ name: String) -> StatementReindex { 32 | description.append("REINDEX \(name)") 33 | return self 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/StatementRelease.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | public final class StatementRelease: Statement { 23 | public private(set) var description: String = "" 24 | public var statementType: StatementType { 25 | return .release 26 | } 27 | 28 | public init() {} 29 | 30 | @discardableResult 31 | public func release(savepoint name: String) -> StatementRelease { 32 | description.append("RELEASE \(name)") 33 | return self 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/StatementRollback.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | public final class StatementRollback: Statement { 23 | public private(set) var description: String = "" 24 | public var statementType: StatementType { 25 | return .rollback 26 | } 27 | 28 | public init() {} 29 | 30 | public func rollback(toSavepoint optionalName: String? = nil) -> StatementRollback { 31 | description.append("ROLLBACK") 32 | if let name = optionalName { 33 | description.append(" TO \(name)") 34 | } 35 | return self 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/StatementSavepoint.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | public final class StatementSavepoint: Statement { 23 | public private(set) var description: String = "" 24 | public var statementType: StatementType { 25 | return .savepoint 26 | } 27 | 28 | public init() {} 29 | 30 | @discardableResult 31 | public func savepoint(_ name: String) -> StatementSavepoint { 32 | description.append("SAVEPOINT \(name)") 33 | return self 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/abstract/StatementVacuum.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | public final class StatementVacuum: Statement { 23 | public private(set) var description: String = "" 24 | public var statementType: StatementType { 25 | return .vacuum 26 | } 27 | 28 | public init() {} 29 | 30 | @discardableResult 31 | public func vacuum(schema: String) -> StatementVacuum { 32 | description.append("VACUUM \(schema)") 33 | return self 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/core/base/RecyclableCore.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | 23 | typealias RecyclableHandlePool = Recyclable 24 | 25 | final class RecyclableHandleStatement: Recyclable { 26 | private let recyclableHandle: RecyclableHandle 27 | 28 | init(recyclableHandle: RecyclableHandle, 29 | handleStatement: HandleStatement) { 30 | self.recyclableHandle = recyclableHandle 31 | super.init(handleStatement) 32 | } 33 | } 34 | 35 | typealias RecyclableHandle = Recyclable 36 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/core/binding/Redirectable.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | 23 | public protocol PropertyRedirectable { 24 | func `as`(_ propertyConvertible: PropertyConvertible) -> Property 25 | } 26 | 27 | extension PropertyRedirectable where Self: Describable { 28 | public func `as`(_ propertyConvertible: PropertyConvertible) -> Property { 29 | return Property(named: description, with: propertyConvertible.codingTableKey) 30 | } 31 | } 32 | 33 | extension Column: PropertyRedirectable {} 34 | 35 | extension ColumnResult: PropertyRedirectable {} 36 | 37 | extension Expression: PropertyRedirectable {} 38 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/core/interface/Declare.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | 23 | public typealias Condition = ExpressionConvertible 24 | public typealias Limit = ExpressionConvertible 25 | public typealias Offset = ExpressionConvertible 26 | public typealias GroupBy = ExpressionConvertible 27 | public typealias Having = ExpressionConvertible 28 | public typealias OrderBy = OrderConvertible 29 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/util/Optional.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | 23 | public protocol OptionalRepresentable { 24 | associatedtype WrappedType 25 | 26 | static var `nil`: Self {get} 27 | } 28 | 29 | extension Optional: OptionalRepresentable { 30 | public static var `nil`: Wrapped? { 31 | return nil 32 | } 33 | 34 | public typealias WrappedType = Wrapped 35 | } 36 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/util/Recyclable.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | 23 | //TODO: Refactor 24 | class Recyclable { 25 | typealias OnRecycled = () -> Void 26 | let onRecycled: OnRecycled? 27 | 28 | final let raw: Value 29 | 30 | init(_ raw: Value, onRecycled: @escaping OnRecycled) { 31 | self.raw = raw 32 | self.onRecycled = onRecycled 33 | } 34 | 35 | init(_ raw: Value) { 36 | self.raw = raw 37 | self.onRecycled = nil 38 | } 39 | 40 | deinit { 41 | if onRecycled != nil { 42 | onRecycled!() 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/util/SQLite-Bridging.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | 23 | typealias SQLite3 = OpaquePointer 24 | typealias SQLite3Statement = OpaquePointer 25 | typealias SQLite3Value = OpaquePointer 26 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/util/Tagged.swift: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | import Foundation 22 | 23 | final class Counter { 24 | static let counter = Atomic(0) 25 | 26 | static func step() -> Int { 27 | return ++counter 28 | } 29 | } 30 | 31 | final class Tagged: Equatable { 32 | let identifier: Int 33 | let value: Value 34 | 35 | init(_ value: Value) { 36 | self.value = value 37 | self.identifier = Counter.step() 38 | } 39 | 40 | static func == (lhs: Tagged, rhs: Tagged) -> Bool { 41 | return lhs.identifier == rhs.identifier 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Pods/WCDB.swift/swift/source/util/WCDB-Bridging.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tencent is pleased to support the open source community by making 3 | * WCDB available. 4 | * 5 | * Copyright (C) 2017 THL A29 Limited, a Tencent company. 6 | * All rights reserved. 7 | * 8 | * Licensed under the BSD 3-Clause License (the "License"); you may not use 9 | * this file except in compliance with the License. You may obtain a copy of 10 | * the License at 11 | * 12 | * https://opensource.org/licenses/BSD-3-Clause 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | #import 22 | #import 23 | -------------------------------------------------------------------------------- /Pods/WCDBOptimizedSQLCipher/ext/fts3/fts3.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** 2006 Oct 10 3 | ** 4 | ** The author disclaims copyright to this source code. In place of 5 | ** a legal notice, here is a blessing: 6 | ** 7 | ** May you do good and not evil. 8 | ** May you find forgiveness for yourself and forgive others. 9 | ** May you share freely, never taking more than you give. 10 | ** 11 | ****************************************************************************** 12 | ** 13 | ** This header file is used by programs that want to link against the 14 | ** FTS3 library. All it does is declare the sqlite3Fts3Init() interface. 15 | */ 16 | #include "sqlite3.h" 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif /* __cplusplus */ 21 | 22 | int sqlite3Fts3Init(sqlite3 *db); 23 | 24 | #ifdef __cplusplus 25 | } /* extern "C" */ 26 | #endif /* __cplusplus */ 27 | -------------------------------------------------------------------------------- /Pods/WCDBOptimizedSQLCipher/ext/icu/sqliteicu.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** 2008 May 26 3 | ** 4 | ** The author disclaims copyright to this source code. In place of 5 | ** a legal notice, here is a blessing: 6 | ** 7 | ** May you do good and not evil. 8 | ** May you find forgiveness for yourself and forgive others. 9 | ** May you share freely, never taking more than you give. 10 | ** 11 | ****************************************************************************** 12 | ** 13 | ** This header file is used by programs that want to link against the 14 | ** ICU extension. All it does is declare the sqlite3IcuInit() interface. 15 | */ 16 | #include "sqlite3.h" 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif /* __cplusplus */ 21 | 22 | int sqlite3IcuInit(sqlite3 *db); 23 | 24 | #ifdef __cplusplus 25 | } /* extern "C" */ 26 | #endif /* __cplusplus */ 27 | 28 | -------------------------------------------------------------------------------- /Pods/WCDBOptimizedSQLCipher/ext/rtree/rtree.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** 2008 May 26 3 | ** 4 | ** The author disclaims copyright to this source code. In place of 5 | ** a legal notice, here is a blessing: 6 | ** 7 | ** May you do good and not evil. 8 | ** May you find forgiveness for yourself and forgive others. 9 | ** May you share freely, never taking more than you give. 10 | ** 11 | ****************************************************************************** 12 | ** 13 | ** This header file is used by programs that want to link against the 14 | ** RTREE library. All it does is declare the sqlite3RtreeInit() interface. 15 | */ 16 | #include "sqlite3.h" 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif /* __cplusplus */ 21 | 22 | int sqlite3RtreeInit(sqlite3 *db); 23 | 24 | #ifdef __cplusplus 25 | } /* extern "C" */ 26 | #endif /* __cplusplus */ 27 | -------------------------------------------------------------------------------- /Pods/WCDBOptimizedSQLCipher/src/msvc.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** 2015 January 12 3 | ** 4 | ** The author disclaims copyright to this source code. In place of 5 | ** a legal notice, here is a blessing: 6 | ** 7 | ** May you do good and not evil. 8 | ** May you find forgiveness for yourself and forgive others. 9 | ** May you share freely, never taking more than you give. 10 | ** 11 | ****************************************************************************** 12 | ** 13 | ** This file contains code that is specific to MSVC. 14 | */ 15 | #ifndef SQLITE_MSVC_H 16 | #define SQLITE_MSVC_H 17 | 18 | #if defined(_MSC_VER) 19 | #pragma warning(disable : 4054) 20 | #pragma warning(disable : 4055) 21 | #pragma warning(disable : 4100) 22 | #pragma warning(disable : 4127) 23 | #pragma warning(disable : 4130) 24 | #pragma warning(disable : 4152) 25 | #pragma warning(disable : 4189) 26 | #pragma warning(disable : 4206) 27 | #pragma warning(disable : 4210) 28 | #pragma warning(disable : 4232) 29 | #pragma warning(disable : 4244) 30 | #pragma warning(disable : 4305) 31 | #pragma warning(disable : 4306) 32 | #pragma warning(disable : 4702) 33 | #pragma warning(disable : 4706) 34 | #endif /* defined(_MSC_VER) */ 35 | 36 | #endif /* SQLITE_MSVC_H */ 37 | -------------------------------------------------------------------------------- /Pods/WCDBOptimizedSQLCipher/src/vxworks.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** 2015-03-02 3 | ** 4 | ** The author disclaims copyright to this source code. In place of 5 | ** a legal notice, here is a blessing: 6 | ** 7 | ** May you do good and not evil. 8 | ** May you find forgiveness for yourself and forgive others. 9 | ** May you share freely, never taking more than you give. 10 | ** 11 | ****************************************************************************** 12 | ** 13 | ** This file contains code that is specific to Wind River's VxWorks 14 | */ 15 | #if defined(__RTP__) || defined(_WRS_KERNEL) 16 | /* This is VxWorks. Set up things specially for that OS 17 | */ 18 | #include 19 | #include /* amalgamator: dontcache */ 20 | #define OS_VXWORKS 1 21 | #define SQLITE_OS_OTHER 0 22 | #define SQLITE_HOMEGROWN_RECURSIVE_MUTEX 1 23 | #define SQLITE_OMIT_LOAD_EXTENSION 1 24 | #define SQLITE_ENABLE_LOCKING_STYLE 0 25 | #define HAVE_UTIME 1 26 | #else 27 | /* This is not VxWorks. */ 28 | #define OS_VXWORKS 0 29 | #define HAVE_FCHOWN 1 30 | #define HAVE_READLINK 1 31 | #define HAVE_LSTAT 1 32 | #endif /* defined(_WRS_KERNEL) */ 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 不止美剧 2 | 3 | 《不止美剧》是个人自用的一个 APP,仅供学习,不要传播,没有上架。 4 | 5 | 界面设计参考《香色闺阁》,数据来源是《美剧 TV》,由于《美剧 TV》播放时顶部有间距不能消失,且首页具体分类剧集每次下拉刷新时,数据源都会错乱,故而自己写了一个这个 APP,大家有兴趣可以参考。 6 | 7 | 功能描述: 8 | 1. 美剧、韩剧、日剧、泰剧最近更新 9 | 2. 收藏、剧集搜索 10 | 3. 播放、画中画播放 11 | 4. 支持 iPad 12 | 13 | 14 | ![img_1526.png](https://inews.gtimg.com/newsapp_ls/0/14598086591/0.png) 15 | ![img_1529.png](https://inews.gtimg.com/newsapp_ls/0/14598086432/0.png) 16 | ![img_1528.png](https://inews.gtimg.com/newsapp_ls/0/14598086012/0.png) 17 | ![img_1527.png](https://inews.gtimg.com/newsapp_ls/0/14598085950/0.png) 18 | ![img_1530.png](https://inews.gtimg.com/newsapp_ls/0/14598084758/0.png) 19 | ![img_1531.png](https://inews.gtimg.com/newsapp_ls/0/14598084730/0.png) 20 | 21 | ## 关于 22 | 23 | 博客地址:[今是昨非的博客](https://morganwang.cn/) 24 | 25 | 我其他的 APP 推荐: 26 | - [水印相机-简单好用](https://apps.apple.com/cn/app/qq/id1607957232) 27 | - [挑战24点](https://apps.apple.com/cn/app/qq/id1610914130) -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/1024-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/1024-1024.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/120-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/120-120.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/120-121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/120-121.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/152-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/152-152.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/167-167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/167-167.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/180-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/180-180.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/20-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/20-20.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/29-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/29-29.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/40-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/40-40.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/40-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/40-41.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/40-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/40-42.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/58-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/58-58.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/58-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/58-59.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/60-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/60-60.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/76-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/76-76.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/80-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/80-80.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/80-81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/80-81.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/AppIcon.appiconset/87-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/AppIcon.appiconset/87-87.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/app_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "app_icon@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "app_icon@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/app_icon.imageset/app_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/app_icon.imageset/app_icon@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/app_icon.imageset/app_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/app_icon.imageset/app_icon@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/dark_arrow_right.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "dark_arrow_right@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "dark_arrow_right@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/dark_arrow_right.imageset/dark_arrow_right@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/dark_arrow_right.imageset/dark_arrow_right@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/dark_arrow_right.imageset/dark_arrow_right@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/dark_arrow_right.imageset/dark_arrow_right@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/episode_new.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "episode_new@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "episode_new@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/episode_new.imageset/episode_new@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/episode_new.imageset/episode_new@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/episode_new.imageset/episode_new@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/episode_new.imageset/episode_new@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/episode_play.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "episode_play@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "episode_play@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/episode_play.imageset/episode_play@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/episode_play.imageset/episode_play@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/episode_play.imageset/episode_play@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/episode_play.imageset/episode_play@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/icon_game24.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_game24@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "icon_game24@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/icon_game24.imageset/icon_game24@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/icon_game24.imageset/icon_game24@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/icon_game24.imageset/icon_game24@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/icon_game24.imageset/icon_game24@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/icon_watermarkcamera.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_watermarkcamera@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "icon_watermarkcamera@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/icon_watermarkcamera.imageset/icon_watermarkcamera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/icon_watermarkcamera.imageset/icon_watermarkcamera@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/icon_watermarkcamera.imageset/icon_watermarkcamera@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/icon_watermarkcamera.imageset/icon_watermarkcamera@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/jumpIndicator.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "jumpIndicator@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "jumpIndicator@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/jumpIndicator.imageset/jumpIndicator@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/jumpIndicator.imageset/jumpIndicator@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/jumpIndicator.imageset/jumpIndicator@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/jumpIndicator.imageset/jumpIndicator@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_favorite.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "nav_favorite@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "nav_favorite@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_favorite.imageset/nav_favorite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/nav_favorite.imageset/nav_favorite@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_favorite.imageset/nav_favorite@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/nav_favorite.imageset/nav_favorite@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_favorite_select.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "nav_favorite_select@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "nav_favorite_select@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_favorite_select.imageset/nav_favorite_select@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/nav_favorite_select.imageset/nav_favorite_select@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_favorite_select.imageset/nav_favorite_select@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/nav_favorite_select.imageset/nav_favorite_select@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_folder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "nav_folder@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "nav_folder@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_folder.imageset/nav_folder@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/nav_folder.imageset/nav_folder@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_folder.imageset/nav_folder@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/nav_folder.imageset/nav_folder@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_search.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "nav_search@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "nav_search@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_search.imageset/nav_search@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/nav_search.imageset/nav_search@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/nav_search.imageset/nav_search@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/nav_search.imageset/nav_search@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/searchbar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "searchbar@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "searchbar@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/searchbar.imageset/searchbar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/searchbar.imageset/searchbar@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/searchbar.imageset/searchbar@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/searchbar.imageset/searchbar@3x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/selectIndicator.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "selectIndicator@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "selectIndicator@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/selectIndicator.imageset/selectIndicator@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/selectIndicator.imageset/selectIndicator@2x.png -------------------------------------------------------------------------------- /meijuplay/Assets.xcassets/selectIndicator.imageset/selectIndicator@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mokong/buzhimeiju/950362370c213009eb63ecb17d470fb43909679a/meijuplay/Assets.xcassets/selectIndicator.imageset/selectIndicator@3x.png -------------------------------------------------------------------------------- /meijuplay/Common/Extension/String_Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String_Extensions.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 24/12/2021. 6 | // 7 | 8 | import Foundation 9 | import UIKit 10 | 11 | extension String { 12 | // 根据宽度和字体,计算高度 13 | func getStrHeight(width: CGFloat, font: UIFont) -> CGFloat { 14 | let rect = NSString(string: self).boundingRect(with: CGSize(width: width, height: CGFloat(MAXFLOAT)), 15 | options: .usesLineFragmentOrigin, 16 | attributes: [NSAttributedString.Key.font : font], 17 | context: nil) 18 | let resultH = ceil(rect.height) + 0.1 19 | return resultH 20 | } 21 | 22 | // 根据高度和字体,计算宽度 23 | func getStrWidth(height: CGFloat, font: UIFont) -> CGFloat { 24 | let rect = NSString(string: self).boundingRect(with: CGSize(width: CGFloat(MAXFLOAT), height: height), 25 | options: .usesLineFragmentOrigin, 26 | attributes: [NSAttributedString.Key.font : font], 27 | context: nil) 28 | let resultW = ceil(rect.width) + 0.1 29 | return resultW 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /meijuplay/Common/Extension/UIViewController_Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController_Extensions.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 22/12/2021. 6 | // 7 | 8 | import Foundation 9 | import UIKit 10 | 11 | extension UIViewController { 12 | var topBarHeight: CGFloat { 13 | var top = self.navigationController?.navigationBar.frame.height ?? 0.0 14 | top += UIDevice.statusBarH() 15 | return top 16 | } 17 | 18 | 19 | static func navBarColor(_ type: EpisodeType) -> UIColor { 20 | switch type { 21 | case .MeiJu: 22 | return UIColor.MWCustomColor.navigationBar1 23 | case .HanJu: 24 | return UIColor.MWCustomColor.navigationBar2 25 | case .RiJu: 26 | return UIColor.MWCustomColor.navigationBar3 27 | case .TaiJu: 28 | return UIColor.MWCustomColor.navigationBar4 29 | default: 30 | return UIColor.MWCustomColor.navigationBar1 31 | } 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /meijuplay/Request/MWAPIManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MWAPIManager.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 27/12/2021. 6 | // 7 | 8 | import Foundation 9 | import Alamofire 10 | 11 | class MWAPIManager { 12 | public let sessionManager: Session = { 13 | let configuration = URLSessionConfiguration.af.default 14 | // configuration.timeoutIntervalForRequest = 30 15 | // if #available(iOS 11.0, *) { 16 | // configuration.waitsForConnectivity = true 17 | // } else { 18 | // // Fallback on earlier versions 19 | // } 20 | 21 | let resposneCacher = ResponseCacher(behavior: .modify({ _, response in 22 | let userInfo = ["date": Date()] 23 | return CachedURLResponse(response: response.response, 24 | data: response.data, 25 | userInfo: userInfo, 26 | storagePolicy: .allowed) 27 | })) 28 | 29 | let networkLogger = MWNetworkLogger() 30 | let interceptor = MWRequestInterceptor() 31 | 32 | return Session(configuration: configuration, 33 | interceptor: interceptor, 34 | cachedResponseHandler: resposneCacher, 35 | eventMonitors: [networkLogger]) 36 | }() 37 | 38 | } 39 | -------------------------------------------------------------------------------- /meijuplay/Request/MWNetworkLogger.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MWNetworkLogger.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 27/12/2021. 6 | // 7 | 8 | import Foundation 9 | import Alamofire 10 | 11 | class MWNetworkLogger: EventMonitor { 12 | let queue: DispatchQueue = DispatchQueue(label: "com.morganwang.networklogger") 13 | 14 | func requestDidFinish(_ request: Request) { 15 | print(request.description) 16 | } 17 | 18 | func request(_ request: DataRequest, 19 | didParseResponse response: DataResponse) { 20 | guard let data = response.data else { 21 | return 22 | } 23 | 24 | if let json = try? JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) { 25 | print(json) 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /meijuplay/Request/MWNetworkReachability.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MWNetworkReachability.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 27/12/2021. 6 | // 7 | 8 | import Foundation 9 | import Alamofire 10 | import Toast_Swift 11 | 12 | class MWNetworkReachability { 13 | 14 | static let shared = MWNetworkReachability() 15 | let reachabilityManager = NetworkReachabilityManager(host: "www.baidu.com") 16 | 17 | func startNetworkMonitoring() { 18 | reachabilityManager?.startListening(onUpdatePerforming: { status in 19 | switch status { 20 | case .notReachable: 21 | self.showOfflineAlert() 22 | case .reachable(.cellular): 23 | self.dismissOfflineAlert() 24 | case .reachable(.ethernetOrWiFi): 25 | self.dismissOfflineAlert() 26 | case .unknown: 27 | print("Unknown network state") 28 | } 29 | }) 30 | } 31 | 32 | func showOfflineAlert() { 33 | let rootVC = UIApplication.shared.windows.first?.rootViewController 34 | rootVC?.view.makeToast("Please connect to network and try again") 35 | } 36 | 37 | func dismissOfflineAlert() { 38 | let rootVC = UIApplication.shared.windows.first?.rootViewController 39 | rootVC?.view.hideToast() 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /meijuplay/Request/MWRequestInterceptor.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MWRequestInterceptor.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 27/12/2021. 6 | // 7 | 8 | import Foundation 9 | import Alamofire 10 | 11 | class MWRequestInterceptor: RequestInterceptor { 12 | let retryLimit = 5 13 | let retryDelay: TimeInterval = 10 14 | 15 | func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) { 16 | var urlRequest = urlRequest 17 | // if let token = TokenManager.shared.fetchAccessToken() { 18 | // urlRequest.setValue("token \(token)", forHTTPHeaderField: "Authorization") 19 | // } 20 | completion(.success(urlRequest)) 21 | } 22 | 23 | func retry(_ request: Request, for session: Session, dueTo error: Error, completion: @escaping (RetryResult) -> Void) { 24 | let response = request.task?.response as? HTTPURLResponse 25 | // Retry for 5xx status codes 26 | if let statusCode = response?.statusCode, 27 | (500...599).contains(statusCode), 28 | request.retryCount < retryLimit { 29 | completion(.retryWithDelay(retryDelay)) 30 | } else { 31 | return completion(.doNotRetry) 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /meijuplay/侧边切换页/Model/MeiJuFuncItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuFuncItem.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 21/12/2021. 6 | // 7 | 8 | import Foundation 9 | 10 | 11 | enum FuncItemSelectType: Int { 12 | case select = 1 // 选中 13 | case jump // 跳转 14 | } 15 | 16 | enum FuncItemJumpType: String { 17 | case set = "set" // 设置 18 | case about = "about" // 关于 19 | } 20 | 21 | struct MeiJuFuncItem { 22 | var title: String? 23 | var selectType: FuncItemSelectType = .select 24 | var tagStr: String? // 标记字段;为 select 时是 typeStr;为 jump 时是自定义跳转区分的 25 | } 26 | -------------------------------------------------------------------------------- /meijuplay/关于/Controller/MeiJuAboutVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuAboutVC.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 24/12/2021. 6 | // 7 | 8 | import UIKit 9 | 10 | class MeiJuAboutVC: MWBaseViewController { 11 | 12 | // MARK: - properties 13 | fileprivate var aboutModule: MeiJuAboutViewModule? 14 | 15 | // MARK: - view life cycle 16 | override func viewDidLoad() { 17 | super.viewDidLoad() 18 | 19 | // Do any additional setup after loading the view. 20 | self.title = "不止美剧" 21 | self.navigationController?.navigationBar.isHidden = false 22 | setupSubModules() 23 | } 24 | 25 | override func viewWillAppear(_ animated: Bool) { 26 | super.viewWillAppear(animated) 27 | self.navigationController?.navigationBar.isHidden = false 28 | 29 | } 30 | 31 | override func viewWillDisappear(_ animated: Bool) { 32 | super.viewWillDisappear(animated) 33 | 34 | } 35 | 36 | // MARK: - init 37 | fileprivate func setupSubModules() { 38 | if aboutModule == nil { 39 | aboutModule = MeiJuAboutViewModule(self) 40 | } 41 | aboutModule?.install() 42 | aboutModule?.initData() 43 | } 44 | 45 | // MARK: - utils 46 | 47 | 48 | // MARK: - action 49 | 50 | 51 | // MARK: - other 52 | 53 | 54 | 55 | } 56 | -------------------------------------------------------------------------------- /meijuplay/关于/Model/MWDevOtherAppsItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MWDevOtherAppsItem.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 25/2/2022. 6 | // 7 | 8 | import Foundation 9 | 10 | enum MWDevAppType: String { 11 | case watermarkCamera = "水印相机" 12 | case game24 = "挑战24点" 13 | case meijuplay = "不止美剧" 14 | 15 | func getAppImageName() -> String { 16 | switch self { 17 | case .watermarkCamera: 18 | return "icon_watermarkcamera" 19 | case .game24: 20 | return "icon_game24" 21 | case .meijuplay: 22 | return "icon_meijuplay" 23 | } 24 | } 25 | 26 | func getAppId() -> String { 27 | switch self { 28 | case .watermarkCamera: 29 | return "1607957232" 30 | case .game24: 31 | return "1610914130" 32 | case .meijuplay: 33 | return "1611529480" 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /meijuplay/关于/Model/MeiJuAboutItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuAboutItem.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 24/12/2021. 6 | // 7 | 8 | import Foundation 9 | 10 | enum MeiJuAboutType { 11 | case comment 12 | case share 13 | case policy 14 | case devOtherApps 15 | } 16 | 17 | class MeiJuAboutItem { 18 | var title: String? 19 | var type: MeiJuAboutType = .comment 20 | } 21 | -------------------------------------------------------------------------------- /meijuplay/列表页/View/MeiJuListHeaderView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuListHeaderView.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 21/12/2021. 6 | // 7 | 8 | import UIKit 9 | 10 | class MeiJuListHeaderView: UICollectionReusableView { 11 | // MARK: - view life cycle 12 | 13 | 14 | // MARK: - init 15 | override init(frame: CGRect) { 16 | super.init(frame: frame) 17 | self.backgroundColor = UIColor.custom.background 18 | } 19 | 20 | required init?(coder: NSCoder) { 21 | fatalError("init(coder:) has not been implemented") 22 | } 23 | 24 | // MARK: - utils 25 | 26 | 27 | // MARK: - action 28 | 29 | 30 | // MARK: - other 31 | class func reuseId() -> String { 32 | return "MeiJuListHeaderView" 33 | } 34 | 35 | 36 | } 37 | -------------------------------------------------------------------------------- /meijuplay/剧集/Model/MeiJuEpisodeSeasonItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuEpisodeSeasonItem.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 22/12/2021. 6 | // 7 | 8 | import Foundation 9 | 10 | struct MeiJuEpisodeSeasonItem: Decodable { 11 | var iid: String? // 8666 12 | var title: String? // 紧急呼救第五季 13 | var img: String? // https://img2.doubanio.com/view/photo/s_ratio_poster/public/p2676879602.jpg 14 | var playtime: String? // 0 15 | var otitle: String? // 9-1-1 Season 5 16 | var jianjie: String? // 17 | var daoyan: String? // 18 | var zhuyan: String? // 19 | var list: [EpisodeSingleItem]? // 20 | 21 | enum CodingKeys: String, CodingKey { 22 | case iid 23 | case title 24 | case img 25 | case playtime 26 | case otitle 27 | case jianjie 28 | case daoyan 29 | case zhuyan 30 | case list 31 | } 32 | } 33 | 34 | 35 | struct EpisodeSingleItem: Decodable { 36 | var zhuti: String? 37 | var weburl: String? // http://jiexi.luomeidi.com/index.php/Index/json?vid=9d1f1f0c017c10000f0680b400000000", 38 | var bofang: String? // http://jiexi.luomeidi.com/index.php/Index/json?vid=9d1f1f0c017c10000f0680b400000000" 39 | 40 | enum CodingKeys: String, CodingKey { 41 | case zhuti 42 | case weburl 43 | case bofang 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /meijuplay/我的/Controller/MeiJuMineVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuMineVC.swift 3 | // meijuplay 4 | // 5 | // Created by MorganWang on 2021/11/28. 6 | // 7 | 8 | import UIKit 9 | 10 | /// 我的 11 | class MeiJuMineVC: MWBaseViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | self.title = "我的" 18 | } 19 | 20 | 21 | /* 22 | // MARK: - Navigation 23 | 24 | // In a storyboard-based application, you will often want to do a little preparation before navigation 25 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 26 | // Get the new view controller using segue.destination. 27 | // Pass the selected object to the new view controller. 28 | } 29 | */ 30 | 31 | } 32 | -------------------------------------------------------------------------------- /meijuplay/搜索页/Model/MeiJuSearchResItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuSearchResItem.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 23/12/2021. 6 | // 7 | 8 | import Foundation 9 | 10 | struct MeiJuSearchResItem: Decodable { 11 | let list: [SearchSingleItem]? 12 | 13 | enum CodingKeys: String, CodingKey { 14 | case list 15 | } 16 | } 17 | 18 | struct SearchSingleItem: Decodable { 19 | var itemId: String? // 8636" 20 | var title: String? // 海军罪案调查处第十九季" 21 | var img: String? // https://img2.doubanio.com/view/photo/s_ratio_poster/public/p2682455611.jpg 22 | 23 | enum CodingKeys: String, CodingKey { 24 | case itemId = "id" 25 | case title 26 | case img 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /meijuplay/播放页/Model/MeiJuMediaItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuMediaItem.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 16/12/2021. 6 | // 7 | 8 | import Foundation 9 | 10 | struct MeiJuMediaItem { 11 | var url: URL? 12 | var title: String? 13 | } 14 | -------------------------------------------------------------------------------- /meijuplay/数据库/MeiJuListDBItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuListDBItem.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 10/1/2022. 6 | // 7 | 8 | import Foundation 9 | import WCDBSwift 10 | 11 | class MeiJuListDBItem: TableCodable { 12 | var typeStr: String = "" // 列表类型 13 | var jsonDataStr: String? = nil // 数据jsonStr 14 | 15 | enum CodingKeys: String, CodingTableKey { 16 | typealias Root = MeiJuListDBItem 17 | static let objectRelationalMapping = TableBinding(CodingKeys.self) 18 | 19 | case typeStr 20 | case jsonDataStr 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /meijuplay/热搜页/Controller/MeiJuHotSearchVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuHotSearchVC.swift 3 | // meijuplay 4 | // 5 | // Created by MorganWang on 2021/11/28. 6 | // 7 | 8 | import UIKit 9 | 10 | /// 热搜+搜索记录页 11 | class MeiJuHotSearchVC: MWBaseViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | } 18 | 19 | 20 | /* 21 | // MARK: - Navigation 22 | 23 | // In a storyboard-based application, you will often want to do a little preparation before navigation 24 | override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 25 | // Get the new view controller using segue.destination. 26 | // Pass the selected object to the new view controller. 27 | } 28 | */ 29 | 30 | } 31 | -------------------------------------------------------------------------------- /meijuplay/设置页面/View/MeiJuSetHeaderView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuSetHeaderView.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 9/1/2022. 6 | // 7 | 8 | import UIKit 9 | import SnapKit 10 | 11 | class MeiJuSetHeaderView: UIView { 12 | 13 | // MARK: - properties 14 | fileprivate var titleLabel: UILabel? 15 | 16 | // MARK: - init 17 | override init(frame: CGRect) { 18 | super.init(frame: frame) 19 | 20 | setupSubviews() 21 | } 22 | 23 | required init?(coder: NSCoder) { 24 | fatalError("init(coder:) has not been implemented") 25 | } 26 | 27 | fileprivate func setupSubviews() { 28 | if titleLabel == nil { 29 | titleLabel = UILabel() 30 | } 31 | titleLabel?.font = UIFont.MWCustomFont.headerFont 32 | titleLabel?.textColor = UIColor.custom.primaryText 33 | addSubview(titleLabel!) 34 | 35 | titleLabel?.snp.makeConstraints({ make in 36 | make.leading.trailing.equalToSuperview().inset(16.0) 37 | make.centerY.equalToSuperview() 38 | }) 39 | } 40 | 41 | // MARK: - utils 42 | func update(_ title: String?) { 43 | titleLabel?.text = title 44 | } 45 | 46 | // MARK: - action 47 | 48 | 49 | // MARK: - other 50 | 51 | 52 | } 53 | -------------------------------------------------------------------------------- /meijuplay/首页/View/MeiJuHomeHeaderView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeiJuHomeHeaderView.swift 3 | // meijuplay 4 | // 5 | // Created by Horizon on 7/12/2021. 6 | // 7 | 8 | import UIKit 9 | import SnapKit 10 | 11 | /// 轮播图 12 | class MeiJuHomeHeaderView: UICollectionReusableView { 13 | // MARK: - properties 14 | fileprivate lazy var displayLabel: UILabel = UILabel() 15 | 16 | 17 | // MARK: - init 18 | 19 | override init(frame: CGRect) { 20 | super.init(frame: frame) 21 | setupSubviews() 22 | } 23 | 24 | required init?(coder: NSCoder) { 25 | fatalError("init(coder:) has not been implemented") 26 | } 27 | 28 | fileprivate func setupSubviews() { 29 | displayLabel.font = UIFont.custom.titleFont 30 | displayLabel.textColor = UIColor.custom.primaryText 31 | self.addSubview(displayLabel) 32 | 33 | displayLabel.snp.makeConstraints { make in 34 | make.leading.equalToSuperview().inset(32.0) 35 | make.centerY.equalToSuperview() 36 | } 37 | } 38 | 39 | 40 | // MARK: - utils 41 | func update(with text: String?) { 42 | displayLabel.text = text 43 | } 44 | 45 | // MARK: - action 46 | 47 | 48 | // MARK: - other 49 | class func reuseId() -> String { 50 | return "MeiJuHomeHeaderView" 51 | } 52 | 53 | 54 | } 55 | 56 | --------------------------------------------------------------------------------