diff options
Diffstat (limited to 'Sources/swift-gopher')
-rw-r--r-- | Sources/swift-gopher/fileTypes.swift | 133 | ||||
-rw-r--r-- | Sources/swift-gopher/gopherHandler.swift | 1 | ||||
-rw-r--r-- | Sources/swift-gopher/helpers.swift | 7 |
3 files changed, 7 insertions, 134 deletions
diff --git a/Sources/swift-gopher/fileTypes.swift b/Sources/swift-gopher/fileTypes.swift deleted file mode 100644 index 221b7b2..0000000 --- a/Sources/swift-gopher/fileTypes.swift +++ /dev/null @@ -1,133 +0,0 @@ -// -// fileTypes.swift -// -// -// Created by Navan Chauhan on 12/3/23. -// - -import Foundation - -enum ResponseType { - case string(String) - case data(Data) -} - -enum gopherFileType { - case text - case directory - case nameserver - case error - case binhex - case bindos - case uuencoded - case indexSearch - case telnet - case binary - case redundantServer - case tn3270Session - case gif - case image - case bitmap - case movie - case sound - case doc - case html - case message - case png - case rtf - case wavfile - case pdf - case xml -} - -func getFileType(fileExtension: String) -> gopherFileType { - switch fileExtension { - case "txt": - return .text - case "md": - return .text - case "html": - return .html - case "pdf": - return .pdf - case "png": - return .png - case "gif": - return .gif - case "jpg": - return .image - case "jpeg": - return .image - case "mp3": - return .sound - case "wav": - return .wavfile - case "mp4": - return .movie - case "mov": - return .movie - case "avi": - return .movie - case "rtf": - return .rtf - case "xml": - return .xml - default: - return .binary - } -} - -func fileTypeToGopherItem(fileType: gopherFileType) -> String { - switch fileType { - case .text: - return "0" - case .directory: - return "1" - case .nameserver: - return "2" - case .error: - return "3" - case .binhex: - return "4" - case .bindos: - return "5" - case .uuencoded: - return "6" - case .indexSearch: - return "7" - case .telnet: - return "8" - case .binary: - return "9" - case .redundantServer: - return "+" - case .tn3270Session: - return "T" - case .gif: - return "g" - case .image: - return "I" - case .bitmap: - return "b" - case .movie: - return "M" - case .sound: - return "s" - case .doc: - return "d" - case .html: - return "h" - case .message: - return "i" - case .png: - return "p" - case .rtf: - return "t" - case .wavfile: - return "w" - case .pdf: - return "P" - case .xml: - return "x" - } -} diff --git a/Sources/swift-gopher/gopherHandler.swift b/Sources/swift-gopher/gopherHandler.swift index 00a3a30..be06b97 100644 --- a/Sources/swift-gopher/gopherHandler.swift +++ b/Sources/swift-gopher/gopherHandler.swift @@ -2,6 +2,7 @@ import ArgumentParser import Foundation import Logging import NIO +import GopherHelpers final class GopherHandler: ChannelInboundHandler { typealias InboundIn = ByteBuffer diff --git a/Sources/swift-gopher/helpers.swift b/Sources/swift-gopher/helpers.swift index caf841b..f054d17 100644 --- a/Sources/swift-gopher/helpers.swift +++ b/Sources/swift-gopher/helpers.swift @@ -6,4 +6,9 @@ func buildVersionStringResponse() -> String { let repeatedString = "i" + String(repeating: "-", count: 80) + "\t\terror.host\t1\r\n" let versionResponseString = "i" + String(repeating: " ", count: 80 - versionString.count) + versionString + "\t\terror.host\t1\r\n" return "\(repeatedString)\(versionResponseString)" -}
\ No newline at end of file +} + +enum ResponseType { + case string(String) + case data(Data) +} |