5 Commits

Author SHA1 Message Date
23a9ea0820 5.20 2026-02-26 14:58:55 +07:00
28534ab6aa 5.19 2026-02-18 08:00:12 +07:00
11c95a7569 5.18 2026-02-10 10:23:05 +07:00
7a2ba658eb 5.17 2026-02-08 14:22:56 +07:00
199a5be7c5 5.16 2026-02-02 16:29:23 +07:00
30 changed files with 10563 additions and 383 deletions

View File

@ -4,20 +4,6 @@
<dict>
<key>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>M2Kit.framework/M2Kit</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>M2Kit.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>M2Kit.framework/M2Kit</string>
@ -52,6 +38,20 @@
<key>SupportedPlatformVariant</key>
<string>maccatalyst</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>M2Kit.framework/M2Kit</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>M2Kit.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>

View File

@ -6,6 +6,7 @@ import Combine
import CommonCrypto
import Foundation
import JavaScriptCore
import M2KitMacros
import Network
import StoreKit
import Swift
@ -432,18 +433,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@ -455,9 +466,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@ -495,9 +533,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get
@ -521,7 +576,7 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
#endif
}
@_Concurrency.MainActor public let m2Version: Swift.String
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
@_Concurrency.MainActor public struct M2Feedback {

View File

@ -6,6 +6,7 @@ import Combine
import CommonCrypto
import Foundation
import JavaScriptCore
import M2KitMacros
import Network
import StoreKit
import Swift
@ -432,18 +433,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@ -455,9 +466,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@ -495,9 +533,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get
@ -521,7 +576,7 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
#endif
}
@_Concurrency.MainActor public let m2Version: Swift.String
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
@_Concurrency.MainActor public struct M2Feedback {

View File

@ -6,6 +6,7 @@ import Combine
import CommonCrypto
import Foundation
import JavaScriptCore
import M2KitMacros
import Network
import StoreKit
import Swift
@ -432,18 +433,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@ -455,9 +466,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@ -495,9 +533,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get
@ -521,7 +576,7 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
#endif
}
@_Concurrency.MainActor public let m2Version: Swift.String
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
@_Concurrency.MainActor public struct M2Feedback {

View File

@ -6,6 +6,7 @@ import Combine
import CommonCrypto
import Foundation
import JavaScriptCore
import M2KitMacros
import Network
import StoreKit
import Swift
@ -432,18 +433,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@ -455,9 +466,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@ -495,9 +533,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get
@ -521,7 +576,7 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
#endif
}
@_Concurrency.MainActor public let m2Version: Swift.String
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
@_Concurrency.MainActor public struct M2Feedback {

View File

@ -6,6 +6,7 @@ import Combine
import CommonCrypto
import Foundation
import JavaScriptCore
import M2KitMacros
import Network
import StoreKit
import Swift
@ -432,18 +433,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@ -455,9 +466,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@ -495,9 +533,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get
@ -521,7 +576,7 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
#endif
}
@_Concurrency.MainActor public let m2Version: Swift.String
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
@_Concurrency.MainActor public struct M2Feedback {

View File

@ -6,6 +6,7 @@ import Combine
import CommonCrypto
import Foundation
import JavaScriptCore
import M2KitMacros
import Network
import StoreKit
import Swift
@ -432,18 +433,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@ -455,9 +466,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@ -495,9 +533,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get
@ -521,7 +576,7 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
#endif
}
@_Concurrency.MainActor public let m2Version: Swift.String
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
@_Concurrency.MainActor public struct M2Feedback {

View File

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>25C56</string>
<string>25D125</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
@ -17,7 +17,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>5.15</string>
<string>5.20</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>

View File

@ -6,6 +6,7 @@ import Combine
import CommonCrypto
import Foundation
import JavaScriptCore
import M2KitMacros
import Network
import StoreKit
import Swift
@ -432,18 +433,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@ -455,9 +466,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@ -495,9 +533,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get
@ -521,7 +576,7 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
#endif
}
@_Concurrency.MainActor public let m2Version: Swift.String
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
@_Concurrency.MainActor public struct M2Feedback {

View File

@ -6,6 +6,7 @@ import Combine
import CommonCrypto
import Foundation
import JavaScriptCore
import M2KitMacros
import Network
import StoreKit
import Swift
@ -432,18 +433,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@ -455,9 +466,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@ -495,9 +533,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get
@ -521,7 +576,7 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
#endif
}
@_Concurrency.MainActor public let m2Version: Swift.String
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
@_Concurrency.MainActor public struct M2Feedback {

View File

@ -6,6 +6,7 @@ import Combine
import CommonCrypto
import Foundation
import JavaScriptCore
import M2KitMacros
import Network
import StoreKit
import Swift
@ -432,18 +433,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@ -455,9 +466,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@ -495,9 +533,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get
@ -521,7 +576,7 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
#endif
}
@_Concurrency.MainActor public let m2Version: Swift.String
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
@_Concurrency.MainActor public struct M2Feedback {

View File

@ -6,6 +6,7 @@ import Combine
import CommonCrypto
import Foundation
import JavaScriptCore
import M2KitMacros
import Network
import StoreKit
import Swift
@ -432,18 +433,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@ -455,9 +466,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
@_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@ -495,9 +533,26 @@ extension M2Kit.M2API {
}
extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get
@ -521,7 +576,7 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
#endif
}
@_Concurrency.MainActor public let m2Version: Swift.String
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
@_Concurrency.MainActor public struct M2Feedback {

View File

@ -10,47 +10,47 @@
</data>
<key>Info.plist</key>
<data>
DAuUiirg7SLXZSP2oUEelGmxarA=
MjsOxQSZCeLXzj5+0YEA+fqXxh4=
</data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.abi.json</key>
<data>
d+QKInsXkMkQjeWJa7k1CiTBw4U=
GVUgp6LWYpHWoQE/bKWB1rRGOYY=
</data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
<data>
T7BVtNYbAepYBrvIC7FwWYfWAtY=
ZNnL2sIUmJOqPgBhQbE6NTkaP2Y=
</data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
<data>
VJyjo22UtSSbm9C2Ok3I3iplq34=
L1ZE0uPSnnbndRLRBhX27frrO1o=
</data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key>
<data>
T7BVtNYbAepYBrvIC7FwWYfWAtY=
ZNnL2sIUmJOqPgBhQbE6NTkaP2Y=
</data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
<data>
HGE+y64I4KJWLKlSL/kFjAuP07E=
N9XLG2pMR3rs+SVvgHERx7Ny2Jw=
</data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
<data>
d+QKInsXkMkQjeWJa7k1CiTBw4U=
GVUgp6LWYpHWoQE/bKWB1rRGOYY=
</data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
<data>
FcnYejEVzE71T4GDveSVVdXeEtY=
XHVDZHBijtnz9qSt5ZU+wpNNpsI=
</data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
<data>
sqPQ02ilaz7rQN5t6DDpRJIupBQ=
HK2TtOyJP2OIxypINN+SN8Y+Cvg=
</data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key>
<data>
FcnYejEVzE71T4GDveSVVdXeEtY=
XHVDZHBijtnz9qSt5ZU+wpNNpsI=
</data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
<data>
kmTdY2UbqOWi1SFlifIbvcrfyhk=
Gwm1idriaOsToib5q3RASGDB4bI=
</data>
<key>Modules/module.modulemap</key>
<data>
@ -70,70 +70,70 @@
<dict>
<key>hash2</key>
<data>
nXTsZZ2zJnb3C9EeaPVxTcKjamKBSJa9rGnzUgcqv0E=
be66hsoMVOqrprx2PvbitKKpcR7I27OBAHsRcEfrE54=
</data>
</dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
<dict>
<key>hash2</key>
<data>
GDXDoe9UwdaFnE9AV4BV6Mnaf3uqJjUhHkVCUJgAT88=
d3iNWU0sljx2dtRpvXfvRekNgrvPo0NyXOyVgjEBhWg=
</data>
</dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
<dict>
<key>hash2</key>
<data>
zc4mUUXwGR/EJ66Oxe3HzQEwlhQN2nsSdK1dvAurUDM=
Hj6cXoyFvKFEZFb+nynmECAto2DJHn/6OQE34s9Upmw=
</data>
</dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key>
<dict>
<key>hash2</key>
<data>
GDXDoe9UwdaFnE9AV4BV6Mnaf3uqJjUhHkVCUJgAT88=
d3iNWU0sljx2dtRpvXfvRekNgrvPo0NyXOyVgjEBhWg=
</data>
</dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
<dict>
<key>hash2</key>
<data>
VD9hkXZ8Xm6asXv4zSfALUlDaBYlAENWi0o7hecLeXk=
the1RDODWLwpGlZU6hM1oEQGNKtV1LAk1zUX3vOQKmA=
</data>
</dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
<dict>
<key>hash2</key>
<data>
nXTsZZ2zJnb3C9EeaPVxTcKjamKBSJa9rGnzUgcqv0E=
be66hsoMVOqrprx2PvbitKKpcR7I27OBAHsRcEfrE54=
</data>
</dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
<dict>
<key>hash2</key>
<data>
VjRcASjCge/ykpmZBR8NmvWdE0SgV7zwqy4QMM74juM=
xOw7fMNaRORUv3s7HbNx/ZlZSWICl3p+IvlHUwZDhkI=
</data>
</dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
<dict>
<key>hash2</key>
<data>
Ww1czHXnbrAq2NoZnKCasDXNV6Gwkj9tcEvQfBnXqD4=
90gsLAcPijC4sB5B5DyX1RGcthuvJ/JvWLpEF23dE20=
</data>
</dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key>
<dict>
<key>hash2</key>
<data>
VjRcASjCge/ykpmZBR8NmvWdE0SgV7zwqy4QMM74juM=
xOw7fMNaRORUv3s7HbNx/ZlZSWICl3p+IvlHUwZDhkI=
</data>
</dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
<dict>
<key>hash2</key>
<data>
d06DdEepR0+WMO8ATCiIaI5uzHADbKLsRws+Y5jzMyQ=
BWTqxs7MRtUYNqgLi3gQy2bw/JW4bQ332wrCKvNc7h8=
</data>
</dict>
<key>Modules/module.modulemap</key>

View File

@ -1,3 +1,3 @@
M2Kit
=====
5.15
5.20