[create-pull-request] automated change
This commit is contained in:
parent
f1dc7be31d
commit
098ed65439
|
@ -178,30 +178,30 @@ class EmailHelper: NSObject, MFMailComposeViewControllerDelegate {
|
|||
private override init() {
|
||||
//
|
||||
}
|
||||
|
||||
func sendLogs(logURL: URL){
|
||||
|
||||
func sendLogs(logURL: URL) {
|
||||
if !MFMailComposeViewController.canSendMail() {
|
||||
// Utilities.showErrorBanner(title: "No mail account found", subtitle: "Please setup a mail account")
|
||||
return //EXIT
|
||||
return // EXIT
|
||||
}
|
||||
|
||||
|
||||
let picker = MFMailComposeViewController()
|
||||
|
||||
|
||||
let fileManager = FileManager()
|
||||
let data = fileManager.contents(atPath: logURL.path)
|
||||
|
||||
|
||||
picker.setSubject("SwiftFin Shake Report")
|
||||
picker.setToRecipients(["Aiden Vigue <acvigue@me.com>"])
|
||||
picker.addAttachmentData(data!, mimeType: "text/plain", fileName: logURL.lastPathComponent)
|
||||
picker.mailComposeDelegate = self
|
||||
|
||||
|
||||
EmailHelper.getRootViewController()?.present(picker, animated: true, completion: nil)
|
||||
}
|
||||
|
||||
|
||||
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
|
||||
EmailHelper.getRootViewController()?.dismiss(animated: true, completion: nil)
|
||||
}
|
||||
|
||||
|
||||
static func getRootViewController() -> UIViewController? {
|
||||
UIApplication.shared.windows.first?.rootViewController
|
||||
}
|
||||
|
|
|
@ -883,10 +883,10 @@ extension PlayerViewController: GCKSessionManagerListener {
|
|||
}
|
||||
|
||||
func sessionManager(_ sessionManager: GCKSessionManager, didEnd session: GCKCastSession, withError error: Error?) {
|
||||
if(error != nil) {
|
||||
if error != nil {
|
||||
LogManager.shared.log.error((error! as NSError).debugDescription)
|
||||
}
|
||||
|
||||
|
||||
playerDestination = .local
|
||||
videoContentView.isHidden = false
|
||||
remoteTimeUpdateTimer?.invalidate()
|
||||
|
|
|
@ -13,30 +13,30 @@ import Puppy
|
|||
class LogManager {
|
||||
static let shared = LogManager()
|
||||
let log = Puppy()
|
||||
|
||||
|
||||
init() {
|
||||
let console = ConsoleLogger("me.vigue.jellyfin.ConsoleLogger")
|
||||
let fileURL = self.getDocumentsDirectory().appendingPathComponent("logs.txt")
|
||||
let FM = FileManager()
|
||||
_ = try? FM.removeItem(at: fileURL)
|
||||
|
||||
|
||||
do {
|
||||
let file = try FileLogger("me.vigue.jellyfin", fileURL: fileURL)
|
||||
file.format = LogFormatter();
|
||||
file.format = LogFormatter()
|
||||
log.add(file, withLevel: .debug)
|
||||
} catch(let err) {
|
||||
} catch let err {
|
||||
log.error("Couldn't initialize file logger.")
|
||||
print(err);
|
||||
print(err)
|
||||
}
|
||||
console.format = LogFormatter();
|
||||
console.format = LogFormatter()
|
||||
log.add(console, withLevel: .debug)
|
||||
log.info("Logger initialized.")
|
||||
}
|
||||
|
||||
|
||||
func logFileURL() -> URL {
|
||||
return self.getDocumentsDirectory().appendingPathComponent("logs.txt")
|
||||
}
|
||||
|
||||
|
||||
func getDocumentsDirectory() -> URL {
|
||||
// find all possible documents directories for this user
|
||||
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
|
||||
|
@ -48,7 +48,7 @@ class LogManager {
|
|||
|
||||
class LogFormatter: LogFormattable {
|
||||
func formatMessage(_ level: LogLevel, message: String, tag: String, function: String,
|
||||
file: String, line: UInt, swiftLogInfo: [String : String],
|
||||
file: String, line: UInt, swiftLogInfo: [String: String],
|
||||
label: String, date: Date, threadID: UInt64) -> String {
|
||||
let file = shortFileName(file).replacingOccurrences(of: ".swift", with: "")
|
||||
return " [\(level.emoji) \(level)] \(file)#\(line):\(function) \(message)"
|
||||
|
|
|
@ -65,7 +65,7 @@ final class SessionManager {
|
|||
header.append("Device=\"\(deviceName)\", ")
|
||||
|
||||
if devID == nil {
|
||||
LogManager.shared.log.info("Generating device ID...");
|
||||
LogManager.shared.log.info("Generating device ID...")
|
||||
#if os(tvOS)
|
||||
header.append("DeviceId=\"tvOS_\(UIDevice.current.identifierForVendor!.uuidString)_\(String(Date().timeIntervalSince1970))\", ")
|
||||
deviceID = "tvOS_\(UIDevice.current.identifierForVendor!.uuidString)_\(String(Date().timeIntervalSince1970))"
|
||||
|
@ -74,7 +74,7 @@ final class SessionManager {
|
|||
deviceID = "iOS_\(UIDevice.current.identifierForVendor!.uuidString)_\(String(Date().timeIntervalSince1970))"
|
||||
#endif
|
||||
} else {
|
||||
LogManager.shared.log.info("Using stored device ID...");
|
||||
LogManager.shared.log.info("Using stored device ID...")
|
||||
header.append("DeviceId=\"\(devID!)\", ")
|
||||
deviceID = devID!
|
||||
}
|
||||
|
@ -116,7 +116,6 @@ final class SessionManager {
|
|||
|
||||
func loginWithSavedSession(user: SignedInUser) {
|
||||
let accessToken = getAuthToken(userID: user.user_id!)
|
||||
|
||||
|
||||
self.user = user
|
||||
generateAuthHeader(with: accessToken, deviceID: user.device_uuid)
|
||||
|
|
|
@ -70,7 +70,7 @@ final class ConnectToServerViewModel: ViewModel {
|
|||
.sink(receiveCompletion: { result in
|
||||
switch result {
|
||||
case let .failure(error):
|
||||
let err = error as NSError;
|
||||
let err = error as NSError
|
||||
LogManager.shared.log.critical("Error connecting to server at \"\(self.uriSubject.value)\"", tag: "connectToServer")
|
||||
LogManager.shared.log.critical(err.debugDescription, tag: "login")
|
||||
self.errorMessage = error.localizedDescription
|
||||
|
@ -86,7 +86,7 @@ final class ConnectToServerViewModel: ViewModel {
|
|||
}
|
||||
|
||||
func connectToServer(at url: URL) {
|
||||
uriSubject.send(url.absoluteString);
|
||||
uriSubject.send(url.absoluteString)
|
||||
self.connectToServer()
|
||||
}
|
||||
|
||||
|
@ -123,7 +123,7 @@ final class ConnectToServerViewModel: ViewModel {
|
|||
LogManager.shared.log.critical("User provided invalid credentials, server returned a 401 error.", tag: "login")
|
||||
self.errorMessage = "Invalid credentials"
|
||||
case .error:
|
||||
let err = error as NSError;
|
||||
let err = error as NSError
|
||||
LogManager.shared.log.critical("Error logging in to server at \"\(self.uriSubject.value)\"", tag: "login")
|
||||
LogManager.shared.log.critical(err.debugDescription, tag: "login")
|
||||
self.errorMessage = err.localizedDescription
|
||||
|
|
|
@ -68,10 +68,10 @@ final class LibraryViewModel: ViewModel {
|
|||
genreIDs = filters.withGenres.compactMap(\.id)
|
||||
}
|
||||
let sortBy = filters.sortBy.map(\.rawValue)
|
||||
let shouldBeRecursive: Bool = filters.filters.contains(.isFavorite) || personIDs != [] || studioIDs != [] || genreIDs != [];
|
||||
let shouldBeRecursive: Bool = filters.filters.contains(.isFavorite) || personIDs != [] || studioIDs != [] || genreIDs != []
|
||||
ItemsAPI.getItemsByUserId(userId: SessionManager.current.user.user_id!, startIndex: currentPage * 100, limit: 100, recursive: shouldBeRecursive,
|
||||
searchTerm: nil, sortOrder: filters.sortOrder, parentId: parentID,
|
||||
fields: [.primaryImageAspectRatio, .seriesPrimaryImage, .seasonUserData, .overview, .genres, .people], includeItemTypes: filters.filters.contains(.isFavorite) ? ["Movie","Series","Season","Episode"] : ["Movie", "Series"],
|
||||
fields: [.primaryImageAspectRatio, .seriesPrimaryImage, .seasonUserData, .overview, .genres, .people], includeItemTypes: filters.filters.contains(.isFavorite) ? ["Movie", "Series", "Season", "Episode"] : ["Movie", "Series"],
|
||||
filters: filters.filters, sortBy: sortBy, tags: filters.tags,
|
||||
enableUserData: true, personIds: personIDs, studioIds: studioIDs, genreIds: genreIDs, enableImages: true)
|
||||
.trackActivity(loading)
|
||||
|
@ -98,10 +98,10 @@ final class LibraryViewModel: ViewModel {
|
|||
genreIDs = filters.withGenres.compactMap(\.id)
|
||||
}
|
||||
let sortBy = filters.sortBy.map(\.rawValue)
|
||||
let shouldBeRecursive: Bool = filters.filters.contains(.isFavorite) || personIDs != [] || studioIDs != [] || genreIDs != [];
|
||||
let shouldBeRecursive: Bool = filters.filters.contains(.isFavorite) || personIDs != [] || studioIDs != [] || genreIDs != []
|
||||
ItemsAPI.getItemsByUserId(userId: SessionManager.current.user.user_id!, startIndex: currentPage * 100, limit: 100, recursive: shouldBeRecursive,
|
||||
searchTerm: nil, sortOrder: filters.sortOrder, parentId: parentID,
|
||||
fields: [.primaryImageAspectRatio, .seriesPrimaryImage, .seasonUserData, .overview, .genres, .people], includeItemTypes: filters.filters.contains(.isFavorite) ? ["Movie","Series","Season","Episode"] : ["Movie", "Series"],
|
||||
fields: [.primaryImageAspectRatio, .seriesPrimaryImage, .seasonUserData, .overview, .genres, .people], includeItemTypes: filters.filters.contains(.isFavorite) ? ["Movie", "Series", "Season", "Episode"] : ["Movie", "Series"],
|
||||
filters: filters.filters, sortBy: sortBy, tags: filters.tags,
|
||||
enableUserData: true, personIds: personIDs, studioIds: studioIDs, genreIds: genreIDs, enableImages: true)
|
||||
.sink(receiveCompletion: { [weak self] completion in
|
||||
|
|
Loading…
Reference in New Issue