3 Commits
5.1.0 ... 5.4.0

Author SHA1 Message Date
db4d9b0d71 5.4 2025-09-04 14:29:32 +07:00
890670b88b 5.3 2025-09-04 14:16:50 +07:00
1c1ee38e1d 5.2 2025-08-22 11:18:11 +07:00
31 changed files with 24384 additions and 22919 deletions

View File

@ -4,37 +4,6 @@
<dict> <dict>
<key>AvailableLibraries</key> <key>AvailableLibraries</key>
<array> <array>
<dict>
<key>BinaryPath</key>
<string>M2Kit.framework/Versions/A/M2Kit</string>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-maccatalyst</string>
<key>LibraryPath</key>
<string>M2Kit.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<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>
<dict> <dict>
<key>BinaryPath</key> <key>BinaryPath</key>
<string>M2Kit.framework/M2Kit</string> <string>M2Kit.framework/M2Kit</string>
@ -52,6 +21,37 @@
<key>SupportedPlatformVariant</key> <key>SupportedPlatformVariant</key>
<string>simulator</string> <string>simulator</string>
</dict> </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>
<dict>
<key>BinaryPath</key>
<string>M2Kit.framework/Versions/A/M2Kit</string>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-maccatalyst</string>
<key>LibraryPath</key>
<string>M2Kit.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>maccatalyst</string>
</dict>
</array> </array>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>XFWK</string> <string>XFWK</string>

View File

@ -6,6 +6,8 @@ import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import Network
import StoreKit
import Swift import Swift
import SwiftUI import SwiftUI
import UIKit import UIKit
@ -13,52 +15,9 @@ import WebKit
import _Concurrency import _Concurrency
import _StringProcessing import _StringProcessing
import _SwiftConcurrencyShims import _SwiftConcurrencyShims
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public let m2Version: Swift.String public let m2Version: Swift.String
public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Backup { public struct M2Backup {
public static var backupCode: Swift.String { public static var backupCode: Swift.String {
get get
@ -93,14 +52,6 @@ extension M2Kit.M2API {
extension M2Kit.M2API { extension M2Kit.M2API {
@_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)
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
}
public struct M2API { public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -129,6 +80,14 @@ extension M2Kit.M2API {
extension M2Kit.M2API { extension M2Kit.M2API {
public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad()
@_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?)
@ -423,4 +382,57 @@ extension M2Kit.M2Utils {
} }
@objc deinit @objc deinit
} }
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool {
get
}
public func stop()
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
}
extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {}

View File

@ -6,6 +6,8 @@ import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import Network
import StoreKit
import Swift import Swift
import SwiftUI import SwiftUI
import UIKit import UIKit
@ -13,52 +15,9 @@ import WebKit
import _Concurrency import _Concurrency
import _StringProcessing import _StringProcessing
import _SwiftConcurrencyShims import _SwiftConcurrencyShims
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public let m2Version: Swift.String public let m2Version: Swift.String
public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Backup { public struct M2Backup {
public static var backupCode: Swift.String { public static var backupCode: Swift.String {
get get
@ -93,14 +52,6 @@ extension M2Kit.M2API {
extension M2Kit.M2API { extension M2Kit.M2API {
@_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)
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
}
public struct M2API { public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -129,6 +80,14 @@ extension M2Kit.M2API {
extension M2Kit.M2API { extension M2Kit.M2API {
public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad()
@_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?)
@ -423,4 +382,57 @@ extension M2Kit.M2Utils {
} }
@objc deinit @objc deinit
} }
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool {
get
}
public func stop()
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
}
extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {}

View File

@ -6,6 +6,8 @@ import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import Network
import StoreKit
import Swift import Swift
import SwiftUI import SwiftUI
import UIKit import UIKit
@ -13,60 +15,6 @@ import WebKit
import _Concurrency import _Concurrency
import _StringProcessing import _StringProcessing
import _SwiftConcurrencyShims import _SwiftConcurrencyShims
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public let m2Version: Swift.String
public func setServiceType(_ type: Swift.String)
public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -423,4 +371,68 @@ extension M2Kit.M2Utils {
} }
@objc deinit @objc deinit
} }
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool {
get
}
public func stop()
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
}
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {}

View File

@ -6,6 +6,8 @@ import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import Network
import StoreKit
import Swift import Swift
import SwiftUI import SwiftUI
import UIKit import UIKit
@ -13,60 +15,6 @@ import WebKit
import _Concurrency import _Concurrency
import _StringProcessing import _StringProcessing
import _SwiftConcurrencyShims import _SwiftConcurrencyShims
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public let m2Version: Swift.String
public func setServiceType(_ type: Swift.String)
public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -423,4 +371,68 @@ extension M2Kit.M2Utils {
} }
@objc deinit @objc deinit
} }
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool {
get
}
public func stop()
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
}
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {}

View File

@ -6,6 +6,8 @@ import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import Network
import StoreKit
import Swift import Swift
import SwiftUI import SwiftUI
import UIKit import UIKit
@ -13,60 +15,6 @@ import WebKit
import _Concurrency import _Concurrency
import _StringProcessing import _StringProcessing
import _SwiftConcurrencyShims import _SwiftConcurrencyShims
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public let m2Version: Swift.String
public func setServiceType(_ type: Swift.String)
public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -423,4 +371,68 @@ extension M2Kit.M2Utils {
} }
@objc deinit @objc deinit
} }
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool {
get
}
public func stop()
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
}
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {}

View File

@ -6,6 +6,8 @@ import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import Network
import StoreKit
import Swift import Swift
import SwiftUI import SwiftUI
import UIKit import UIKit
@ -13,60 +15,6 @@ import WebKit
import _Concurrency import _Concurrency
import _StringProcessing import _StringProcessing
import _SwiftConcurrencyShims import _SwiftConcurrencyShims
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public let m2Version: Swift.String
public func setServiceType(_ type: Swift.String)
public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -423,4 +371,68 @@ extension M2Kit.M2Utils {
} }
@objc deinit @objc deinit
} }
public struct M2Radio {
}
extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String
}
extension M2Kit.M2Radio {
public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void)
}
extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
}
public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool {
get
}
public func stop()
}
public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
}
public struct M2Image {
public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String?
}
public struct M2HTTP {
public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getData(url: Foundation.URL) async -> Foundation.Data?
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
}
public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
}
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {}

View File

@ -3,7 +3,7 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>BuildMachineOSBuild</key> <key>BuildMachineOSBuild</key>
<string>24G84</string> <string>24G90</string>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>en</string> <string>en</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
@ -17,7 +17,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>FMWK</string> <string>FMWK</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>5.1</string> <string>5.3</string>
<key>CFBundleSupportedPlatforms</key> <key>CFBundleSupportedPlatforms</key>
<array> <array>
<string>MacOSX</string> <string>MacOSX</string>

View File

@ -6,6 +6,8 @@ import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import Network
import StoreKit
import Swift import Swift
import SwiftUI import SwiftUI
import UIKit import UIKit
@ -13,6 +15,79 @@ import WebKit
import _Concurrency import _Concurrency
import _StringProcessing import _StringProcessing
import _SwiftConcurrencyShims import _SwiftConcurrencyShims
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfPlaylist(playlistId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func autocompleteSearch(_ text: Swift.String) async -> [Swift.String]
@_Concurrency.MainActor public static func getLocation() async -> Swift.String?
@_Concurrency.MainActor public static func getTrendingSearch() async -> [Swift.String]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
}
public struct M2API {
}
extension M2Kit.M2API {
public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void)
public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void)
public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
}
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad()
@_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?)
@ -334,6 +409,13 @@ extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
} }
public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool {
get
}
public func stop()
}
public struct M2Musi { public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
@ -350,77 +432,7 @@ public struct M2HTTP {
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data? public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
} }
public let m2Version: Swift.String public struct M2Feedback {
public func setServiceType(_ type: Swift.String) public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfPlaylist(playlistId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func autocompleteSearch(_ text: Swift.String) async -> [Swift.String]
@_Concurrency.MainActor public static func getLocation() async -> Swift.String?
@_Concurrency.MainActor public static func getTrendingSearch() async -> [Swift.String]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
}
public struct M2API {
}
extension M2Kit.M2API {
public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void)
public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void)
public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
}
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
} }
extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {}

View File

@ -6,6 +6,8 @@ import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import Network
import StoreKit
import Swift import Swift
import SwiftUI import SwiftUI
import UIKit import UIKit
@ -13,6 +15,79 @@ import WebKit
import _Concurrency import _Concurrency
import _StringProcessing import _StringProcessing
import _SwiftConcurrencyShims import _SwiftConcurrencyShims
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfPlaylist(playlistId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func autocompleteSearch(_ text: Swift.String) async -> [Swift.String]
@_Concurrency.MainActor public static func getLocation() async -> Swift.String?
@_Concurrency.MainActor public static func getTrendingSearch() async -> [Swift.String]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
}
public struct M2API {
}
extension M2Kit.M2API {
public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void)
public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void)
public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
}
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad()
@_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?)
@ -334,6 +409,13 @@ extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
} }
public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool {
get
}
public func stop()
}
public struct M2Musi { public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
@ -350,77 +432,7 @@ public struct M2HTTP {
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data? public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
} }
public let m2Version: Swift.String public struct M2Feedback {
public func setServiceType(_ type: Swift.String) public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfPlaylist(playlistId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func autocompleteSearch(_ text: Swift.String) async -> [Swift.String]
@_Concurrency.MainActor public static func getLocation() async -> Swift.String?
@_Concurrency.MainActor public static func getTrendingSearch() async -> [Swift.String]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
}
public struct M2API {
}
extension M2Kit.M2API {
public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void)
public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void)
public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
}
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
} }
extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {}

View File

@ -6,6 +6,8 @@ import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import Network
import StoreKit
import Swift import Swift
import SwiftUI import SwiftUI
import UIKit import UIKit
@ -13,6 +15,79 @@ import WebKit
import _Concurrency import _Concurrency
import _StringProcessing import _StringProcessing
import _SwiftConcurrencyShims import _SwiftConcurrencyShims
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfPlaylist(playlistId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func autocompleteSearch(_ text: Swift.String) async -> [Swift.String]
@_Concurrency.MainActor public static func getLocation() async -> Swift.String?
@_Concurrency.MainActor public static func getTrendingSearch() async -> [Swift.String]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
}
public struct M2API {
}
extension M2Kit.M2API {
public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void)
public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void)
public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
}
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad()
@_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?)
@ -334,6 +409,13 @@ extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
} }
public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool {
get
}
public func stop()
}
public struct M2Musi { public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
@ -350,77 +432,7 @@ public struct M2HTTP {
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data? public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
} }
public let m2Version: Swift.String public struct M2Feedback {
public func setServiceType(_ type: Swift.String) public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfPlaylist(playlistId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func autocompleteSearch(_ text: Swift.String) async -> [Swift.String]
@_Concurrency.MainActor public static func getLocation() async -> Swift.String?
@_Concurrency.MainActor public static func getTrendingSearch() async -> [Swift.String]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
}
public struct M2API {
}
extension M2Kit.M2API {
public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void)
public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void)
public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
}
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
} }
extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {}

View File

@ -6,6 +6,8 @@ import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import Network
import StoreKit
import Swift import Swift
import SwiftUI import SwiftUI
import UIKit import UIKit
@ -13,6 +15,79 @@ import WebKit
import _Concurrency import _Concurrency
import _StringProcessing import _StringProcessing
import _SwiftConcurrencyShims import _SwiftConcurrencyShims
public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfPlaylist(playlistId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func autocompleteSearch(_ text: Swift.String) async -> [Swift.String]
@_Concurrency.MainActor public static func getLocation() async -> Swift.String?
@_Concurrency.MainActor public static func getTrendingSearch() async -> [Swift.String]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
}
public struct M2API {
}
extension M2Kit.M2API {
public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void)
public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void)
public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
}
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
}
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad()
@_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?)
@ -334,6 +409,13 @@ extension M2Kit.M2Radio {
public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void)
} }
public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool {
get
}
public func stop()
}
public struct M2Musi { public struct M2Musi {
public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
@ -350,77 +432,7 @@ public struct M2HTTP {
public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getImageData(url: Foundation.URL) async -> Foundation.Data? public static func getImageData(url: Foundation.URL) async -> Foundation.Data?
} }
public let m2Version: Swift.String public struct M2Feedback {
public func setServiceType(_ type: Swift.String) public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public func setLogLevel(_ value: Swift.Int)
public struct M2Backup {
public static var backupCode: Swift.String {
get
}
public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void)
public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchPlaylists(title: Swift.String, nextToken: Swift.String?) async -> (playlists: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfPlaylist(playlistId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func autocompleteSearch(_ text: Swift.String) async -> [Swift.String]
@_Concurrency.MainActor public static func getLocation() async -> Swift.String?
@_Concurrency.MainActor public static func getTrendingSearch() async -> [Swift.String]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String)
}
public struct M2API {
}
extension M2Kit.M2API {
public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void)
public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void)
public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void)
public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void)
}
extension M2Kit.M2API {
public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void)
}
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC
@_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never
public typealias Coordinator = Swift.Void
public typealias UIViewControllerType = M2Kit.M2WebVC
} }
extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {}

View File

@ -10,47 +10,47 @@
</data> </data>
<key>Info.plist</key> <key>Info.plist</key>
<data> <data>
LbBZk70wB+jfsC+gTurSs4SHqSU= nbgOgZ6ExPLh/tiXfYMgQZ1KSLY=
</data> </data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.abi.json</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.abi.json</key>
<data> <data>
j5YYaqfBYb/AJ9p348OPG0C/yeQ= ue7UZt4U8AXPHdg55wm0RutmXTo=
</data> </data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
<data> <data>
3WO0DNGZdJg1B+34CNLRTCK4nZc= zgxSAkYWjmhk06zJXlDxyecSG9c=
</data> </data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
<data> <data>
DkEVovRDl6IiI9eBQHkeGu1lo2U= wQ//BcnCMuqoNpSQ9VxSTaFGERY=
</data> </data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key>
<data> <data>
3WO0DNGZdJg1B+34CNLRTCK4nZc= zgxSAkYWjmhk06zJXlDxyecSG9c=
</data> </data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
<data> <data>
umn+1h6dU2BLqFIpYUdumXKfCnE= YDzQ5fUWjCd8HjdnvXv6cd+007s=
</data> </data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
<data> <data>
j5YYaqfBYb/AJ9p348OPG0C/yeQ= ue7UZt4U8AXPHdg55wm0RutmXTo=
</data> </data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
<data> <data>
Zt6Tw42rOVlCXB52/SP8xkuDxzM= OwXseCmM70MpP7cQ5dJ78szrJR8=
</data> </data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
<data> <data>
QjBBNrL6g84Uzi3hZTYH5aawRqI= 4wSLwtHjSZM2wDIDVmksb9EirIQ=
</data> </data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key>
<data> <data>
Zt6Tw42rOVlCXB52/SP8xkuDxzM= OwXseCmM70MpP7cQ5dJ78szrJR8=
</data> </data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
<data> <data>
fqzILLmexKTaGHGvsD6ok+4jcXE= cxME9EM5EMJWdilwvXfOkvcm1ws=
</data> </data>
<key>Modules/module.modulemap</key> <key>Modules/module.modulemap</key>
<data> <data>
@ -74,110 +74,110 @@
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
j5YYaqfBYb/AJ9p348OPG0C/yeQ= ue7UZt4U8AXPHdg55wm0RutmXTo=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
gtB3CN1HmKWxS0QJa+dXmBppzZ5swBZPLu7hKKIsiXQ= UUNzmzGHs5f3Z/HXpZMN96IPk6rEoCPZEUoozSsBVo4=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
3WO0DNGZdJg1B+34CNLRTCK4nZc= zgxSAkYWjmhk06zJXlDxyecSG9c=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
/JNF8rbROKfWUMwtK4jo8v2cDvjHTlILqPkUt0zVKdA= H1yKfOHLKP9oxIlaOJcXv+O6E163N+d6x3l+O+88eqg=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
DkEVovRDl6IiI9eBQHkeGu1lo2U= wQ//BcnCMuqoNpSQ9VxSTaFGERY=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
K6nDDolGYV4JdHuBjfKcZTqeprVJRihcJ2GMTyVuLr0= 303Vdo1nGz/Y1FQ+CBQN5CipOXCIoY043HBr6t5Dvwo=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
3WO0DNGZdJg1B+34CNLRTCK4nZc= zgxSAkYWjmhk06zJXlDxyecSG9c=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
/JNF8rbROKfWUMwtK4jo8v2cDvjHTlILqPkUt0zVKdA= H1yKfOHLKP9oxIlaOJcXv+O6E163N+d6x3l+O+88eqg=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
umn+1h6dU2BLqFIpYUdumXKfCnE= YDzQ5fUWjCd8HjdnvXv6cd+007s=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
7/DBX/SJYPnvbEAettSSPXq4gHeY7/s94y7kiKOIaGI= yL5XWsuLsQxJgsdMPcFulKLqSo7G1ItPtarXCc7ajLs=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
j5YYaqfBYb/AJ9p348OPG0C/yeQ= ue7UZt4U8AXPHdg55wm0RutmXTo=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
gtB3CN1HmKWxS0QJa+dXmBppzZ5swBZPLu7hKKIsiXQ= UUNzmzGHs5f3Z/HXpZMN96IPk6rEoCPZEUoozSsBVo4=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
Zt6Tw42rOVlCXB52/SP8xkuDxzM= OwXseCmM70MpP7cQ5dJ78szrJR8=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
bs4U7MnWjHjJ5dOSMrhQoY/Lm8wSiiYBwSJZ+Dyq0VQ= vrjgJZLn3m0AqSZvl86W1ikZX1YZPaPvsLkcQNkDh7Y=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
QjBBNrL6g84Uzi3hZTYH5aawRqI= 4wSLwtHjSZM2wDIDVmksb9EirIQ=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
ilW9uqpQve2PkMEKY/KDVeCUV7VvHXTPSp3jYu+67SI= MCsCch1BzBEgzU/ODL/So7S6b6jGw/zk5lv0lOqmY/E=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
Zt6Tw42rOVlCXB52/SP8xkuDxzM= OwXseCmM70MpP7cQ5dJ78szrJR8=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
bs4U7MnWjHjJ5dOSMrhQoY/Lm8wSiiYBwSJZ+Dyq0VQ= vrjgJZLn3m0AqSZvl86W1ikZX1YZPaPvsLkcQNkDh7Y=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
<dict> <dict>
<key>hash</key> <key>hash</key>
<data> <data>
fqzILLmexKTaGHGvsD6ok+4jcXE= cxME9EM5EMJWdilwvXfOkvcm1ws=
</data> </data>
<key>hash2</key> <key>hash2</key>
<data> <data>
dDWvgJM1BKPyoV7PJIEb5smHFCQ1m7efph8Ntr2Af44= jSyAe3yQAaXREVw4EOHoX4MWOsWGHorxyiXqK75NpU4=
</data> </data>
</dict> </dict>
<key>Modules/module.modulemap</key> <key>Modules/module.modulemap</key>

View File

@ -1,3 +1,3 @@
M2Kit M2Kit
===== =====
v5.1 v5.4