App now processes 'type' strings, information string will now be trimmed

This commit is contained in:
Deniz Duezgoeren
2019-09-13 13:07:20 +02:00
parent c96644ddc7
commit 8764a2778a
5 changed files with 71 additions and 40 deletions
+34 -21
View File
@@ -31,6 +31,7 @@ class DataFetcher {
let time = Expression<String>("time")
let room = Expression<String>("room")
let teacher = Expression<String>("teacher")
let substType = Expression<String>("type")
let text = Expression<String>("text")
func doAsync(do task: String, completionHandler: @escaping (_ substitutions: [Any]) -> ()) {
@@ -76,6 +77,7 @@ class DataFetcher {
t.column(time)
t.column(room)
t.column(teacher)
t.column(substType)
})
try db.run(personal.create(ifNotExists: true) { t in
@@ -87,6 +89,7 @@ class DataFetcher {
t.column(time)
t.column(room)
t.column(teacher)
t.column(substType)
})
try db.run(substitutions.delete())
@@ -103,26 +106,27 @@ class DataFetcher {
let mTime = try cols.get(2).text()
let mRoom = try cols.get(4).text()
let mTeacher = try cols.get(6).text()
let mType = try cols.get(7).text()
subst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional,
date: mDate, time: mTime, room: mRoom, teacher: mTeacher))
date: mDate, time: mTime, room: mRoom, teacher: mTeacher, type: mType))
let insert = substitutions.insert(group <- mGroup, course <- mCourse, additional <- mAdditional,
date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher)
_ = try db.run(insert)
date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher, substType <- mType)
try db.run(insert)
if mDate.count > 2 && mDate[...mDate.index(mDate.startIndex, offsetBy: 2)] == "psa" {
personalSubst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional,
date: mDate, time: mTime, room: mRoom, teacher: mTeacher))
date: mDate, time: mTime, room: mRoom, teacher: mTeacher, type: mType))
let insertPersonal = personal.insert(group <- mGroup, course <- mCourse, additional <- mAdditional,
date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher)
_ = try db.run(insertPersonal)
date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher, substType <- mType)
try db.run(insertPersonal)
} else if courses == nil || courses == "", classes != nil && classes != "" {
if !mGroup.isEmpty && mGroup != "" {
if classes!.contains(mGroup) || mGroup.contains(classes!) {
personalSubst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional,
date: mDate, time: mTime, room: mRoom, teacher: mTeacher))
date: mDate, time: mTime, room: mRoom, teacher: mTeacher, type: mType))
let insertPersonal = personal.insert(group <- mGroup, course <- mCourse, additional <- mAdditional,
date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher)
_ = try db.run(insertPersonal)
date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher, substType <- mType)
try db.run(insertPersonal)
isPersonalEmpty = false
personalPlanCount += 1
}
@@ -132,10 +136,10 @@ class DataFetcher {
if courses!.contains(mCourse) {
if classes!.contains(mGroup) || mGroup.contains(classes!) {
personalSubst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional,
date: mDate, time: mTime, room: mRoom, teacher: mTeacher))
date: mDate, time: mTime, room: mRoom, teacher: mTeacher, type: mType))
let insertPersonal = personal.insert(group <- mGroup, course <- mCourse, additional <- mAdditional,
date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher)
_ = try db.run(insertPersonal)
date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher, substType <- mType)
try db.run(insertPersonal)
isPersonalEmpty = false
personalPlanCount += 1
}
@@ -147,9 +151,9 @@ class DataFetcher {
prefs.set(personalPlanCount, forKey: "personalPlanCount")
if isPersonalEmpty {
personalSubst.append(SubstModel(group: NSLocalizedString("personal_plan_empty", comment: ""), course: "", additional: "", date: "", time: "", room: "", teacher: ""))
let insertPersonal = personal.insert(group <- NSLocalizedString("personal_plan_empty", comment: ""), course <- "", additional <- "", date <- "", time <- "", room <- "", teacher <- "")
_ = try db.run(insertPersonal)
personalSubst.append(SubstModel(group: NSLocalizedString("personal_plan_empty", comment: ""), course: "", additional: "", date: "", time: "", room: "", teacher: "", type: ""))
let insertPersonal = personal.insert(group <- NSLocalizedString("personal_plan_empty", comment: ""), course <- "", additional <- "", date <- "", time <- "", room <- "", teacher <- "", substType <- "")
try db.run(insertPersonal)
}
let lastUpdated = try doc.select("h1").get(0).text()
@@ -159,11 +163,11 @@ class DataFetcher {
for item in pi {
info += "\n\n\(try item.text())"
}
_ = prefs.set(info, forKey: "information")
prefs.set(info.trimmingCharacters(in: .whitespacesAndNewlines), forKey: "information")
} catch {}
infoList.append(info)
infoList.append(info.trimmingCharacters(in: .whitespacesAndNewlines))
do {
let foodDoc: Document = try SwiftSoup.parse(food)
@@ -197,10 +201,11 @@ class DataFetcher {
}
}
menuList.append(s)
_ = try db.run(foodmenu.insert(text <- s))
try db.run(foodmenu.insert(text <- s))
}
} catch {}
} catch {
}
switch type {
case "plan":
@@ -229,7 +234,7 @@ class DataFetcher {
do {
let db = try Connection("\(path)/db.sqlite3")
for subst in try db.prepare(substitutions) {
substs.append(SubstModel(group: subst[group], course: subst[course], additional: subst[additional], date: subst[date], time: subst[time], room: subst[room], teacher: subst[teacher]))
substs.append(SubstModel(group: subst[group], course: subst[course], additional: subst[additional], date: subst[date], time: subst[time], room: subst[room], teacher: subst[teacher], type: subst[substType]))
}
} catch {}
return substs
@@ -240,7 +245,7 @@ class DataFetcher {
do {
let db = try Connection("\(path)/db.sqlite3")
for subst in try db.prepare(personal) {
substs.append(SubstModel(group: subst[group], course: subst[course], additional: subst[additional], date: subst[date], time: subst[time], room: subst[room], teacher: subst[teacher]))
substs.append(SubstModel(group: subst[group], course: subst[course], additional: subst[additional], date: subst[date], time: subst[time], room: subst[room], teacher: subst[teacher], type: subst[substType]))
}
} catch {}
return substs
@@ -373,4 +378,12 @@ class DataFetcher {
}
}
}
func setCardFormatting(for layer: CALayer) {
layer.cornerRadius = 12.0
layer.shadowColor = UIColor.gray.cgColor
layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
layer.shadowRadius = 1.5
layer.shadowOpacity = 0.7
}
}
+1 -5
View File
@@ -35,11 +35,7 @@ class InfoViewController : UIViewController {
self.extendedLayoutIncludesOpaqueBars = true
self.navigationController?.navigationBar.topItem?.title = NSLocalizedString("information", comment: "")
let layer = contentView.layer
layer.cornerRadius = 12.0
layer.shadowColor = UIColor.gray.cgColor
layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
layer.shadowRadius = 1.5
layer.shadowOpacity = 0.7
df.setCardFormatting(for: layer)
}
@objc private func objDoAsync(_ sender: Any) {
+1 -5
View File
@@ -78,11 +78,7 @@ class MenuViewController : UICollectionViewController, UICollectionViewDelegateM
cell.content.text = self.items[indexPath.item]
cell.tintView.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
let layer = cell.tintView.layer
layer.cornerRadius = 12.0
layer.shadowColor = UIColor.gray.cgColor
layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
layer.shadowRadius = 1.5
layer.shadowOpacity = 0.7
df.setCardFormatting(for: layer)
return cell
}
+32 -8
View File
@@ -20,6 +20,7 @@ class PlanViewController : UICollectionViewController, UICollectionViewDelegateM
let layout = MagazineLayout()
var url = ""
var indexOfPSA: Int? = nil
let cancellations = ["eigenverantwortliches arbeiten", "entfall", "entfällt", "fällt aus", "freisetzung", "vtr. ohne lehrer"]
required init?(coder decoder: NSCoder) {
super.init(coder: decoder)
@@ -106,11 +107,7 @@ class PlanViewController : UICollectionViewController, UICollectionViewDelegateM
var image = df.getImage(from: course)
let layer = cell.tintView.layer
layer.cornerRadius = 12.0
layer.shadowColor = UIColor.gray.cgColor
layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
layer.shadowRadius = 1.5
layer.shadowOpacity = 0.7
df.setCardFormatting(for: layer)
cell.tintView.backgroundColor = self.df.getColour(for: course)
let dateString = self.substs[indexPath.item].date
@@ -144,14 +141,31 @@ class PlanViewController : UICollectionViewController, UICollectionViewDelegateM
}
let add = self.substs[indexPath.item].additional.lowercased()
let type = self.substs[indexPath.item].type.lowercased()
if add.contains("eigenverantwortliches arbeiten") || add.contains("entfall") || add.contains("fällt aus"){
for i in 2...4 {
mutableStrings[i].addAttribute(NSAttributedString.Key.strikethroughStyle, value: 2, range: NSMakeRange(0, mutableStrings[i].length))
}
if !add.isEmpty {
if check(string: add, for: cancellations) {
for i in 2...4 {
mutableStrings[i].addAttribute(NSAttributedString.Key.strikethroughStyle, value: 2, range: NSMakeRange(0, mutableStrings[i].length))
}
}
} else {
if check(string: type, for: cancellations) {
for i in 2...4 {
mutableStrings[i].addAttribute(NSAttributedString.Key.strikethroughStyle, value: 2, range: NSMakeRange(0, mutableStrings[i].length))
}
}
}
cell.group.attributedText = mutableStrings[0]
cell.additional.text = self.substs[indexPath.item].additional
if !self.substs[indexPath.item].additional.isEmpty {
cell.additional.text = self.substs[indexPath.item].additional
} else {
cell.additional.text = self.substs[indexPath.item].type
}
cell.time.attributedText = mutableStrings[1]
cell.room.attributedText = mutableStrings[3]
@@ -189,6 +203,16 @@ class PlanViewController : UICollectionViewController, UICollectionViewDelegateM
return cell
}
private func check(string s: String, for array: [String]) -> Bool {
var b = false
array.forEach { string in
if s.contains(string) {
b = true
}
}
return b
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeModeForItemAt indexPath: IndexPath) -> MagazineLayoutItemSizeMode {
var widthMode: MagazineLayoutItemWidthMode
if UIDevice.current.userInterfaceIdiom == .pad { // iPad
+3 -1
View File
@@ -16,8 +16,9 @@ class SubstModel {
var time: String
var room: String
var teacher: String
var type: String
init(group: String, course: String, additional: String, date: String, time: String, room: String, teacher: String) {
init(group: String, course: String, additional: String, date: String, time: String, room: String, teacher: String, type: String) {
self.group = group
self.course = course
self.additional = additional
@@ -25,5 +26,6 @@ class SubstModel {
self.time = time
self.room = room
self.teacher = teacher
self.type = type
}
}