Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ and small bug fixes
* Quick Actions ⚡
* Show/hide meeting title in status bar
* Open meeting from clipboard
* Customizable appereance for events without meeting links
* Customizable appearance for events without meeting links
* Localization (Ukrainian and Russian)
* Create meetings in Jam
* Open event in Fantastical from event submenu
Expand Down Expand Up @@ -144,7 +144,7 @@ Fixed:
> (released 11th Feb 2021)

* Add Around integration
* Hide show time under title option for Big Sure
* Hide show time under title option for Big Sur
* Fix issues with service icons
* Fix URLs for Firefox and Microsoft Edge

Expand All @@ -161,7 +161,7 @@ Fixed:
* Full control of the **app appearance**:
* Customize icon, title, and time in the status bar
* Show event end time and icon in the menu
* Limitate event title length in the menu
* Limit event title length in the menu
* Wider settings for **displaying events**. Configure pending events, all-day events, and events without guests.
* **Custom link** for ad hoc meeting
* Global shortcut to open the app
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "riverside_icon.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions MeetingBar/Extensions/DefaultsKeys.swift
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ extension Defaults.Keys {
static let teamsBrowser = Key<Browser>("teamsBrowser", default: systemDefaultBrowser)
static let jitsiBrowser = Key<Browser>("jitsiBrowser", default: systemDefaultBrowser)
static let slackBrowser = Key<Browser>("slackBrowser", default: systemDefaultBrowser)
static let riversideBrowser = Key<Browser>("riversideBrowser", default: systemDefaultBrowser)

/**
* browser used for creating a new meeting
Expand Down
30 changes: 29 additions & 1 deletion MeetingBar/Services/MeetingServices.swift
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
case livekit = "LiveKit Meet"
case meetecho = "Meetecho"
case streamyard = "StreamYard"
case riverside = "Riverside"
case other = "Other"

var localizedValue: String {
Expand Down Expand Up @@ -256,6 +257,28 @@
NSWorkspace.shared.open(URL(string: "facetime-audio://" + url.absoluteString)!)
case .phone:
NSWorkspace.shared.open(URL(string: "tel://" + url.absoluteString)!)
case .riverside:
let browser = browser ?? Defaults[.riversideBrowser]
if browser == riversideAppBrowser {
// Try riversidefm:// scheme first
var riversideAppURL = URLComponents(url: url, resolvingAgainstBaseURL: false)!
riversideAppURL.scheme = "riversidefm"
var result = riversideAppURL.url!.openInDefaultBrowser()

// If that fails, try riverside.fm:// scheme
if !result {
riversideAppURL.scheme = "riverside.fm"
result = riversideAppURL.url!.openInDefaultBrowser()
}

// If both app schemes fail, fall back to browser
if !result {
sendNotification("status_bar_error_app_link_title".loco("Riverside"), "status_bar_error_app_link_message".loco("Riverside"))
url.openInDefaultBrowser()
}
} else {
url.openIn(browser: browser)
}
default:
url.openIn(browser: browser ?? Defaults[.defaultBrowser])
}
Expand Down Expand Up @@ -328,7 +351,8 @@
.zmPage: try! NSRegularExpression(pattern: #"https?://([a-zA-Z0-9.]+)\.zm\.page"#),
.livekit: try! NSRegularExpression(pattern: #"https?://meet[a-zA-Z0-9.]*\.livekit\.io/rooms/[a-zA-Z0-9-#]+"#),
.meetecho: try! NSRegularExpression(pattern: #"https?://meetings\.conf\.meetecho\.com/.+"#),
.streamyard: try! NSRegularExpression(pattern: #"https://(?:www\.)?streamyard\.com/(?:guest/)?([a-z0-9]{8,13})(?:/|\?[^ \n]*)?"#)
.streamyard: try! NSRegularExpression(pattern: #"https://(?:www\.)?streamyard\.com/(?:guest/)?([a-z0-9]{8,13})(?:/|\?[^ \n]*)?"#),
.riverside: try! NSRegularExpression(pattern: #"https?://riverside\.(com|fm)/studio/[^\s]*"#)
]

func regex(for service: MeetingServices) -> NSRegularExpression? {
Expand Down Expand Up @@ -628,6 +652,10 @@
image = NSImage(named: "streamyard_icon")!
image.size = NSSize(width: 16, height: 16)

case .some(.riverside):
image = NSImage(named: "riverside_icon")!
image.size = NSSize(width: 16, height: 16)

// tested and verified
case .none:
image = NSImage(named: "no_online_session")!
Expand Down
2 changes: 1 addition & 1 deletion MeetingBar/UI/Views/Changelog/Changelog.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ struct ChangelogView: View {
Text("⚡ Quick Actions: ")
Text(" - Show/hide meeting title in status bar")
Text(" - Open meeting from clipboard")
Text("• Customizable appereance for events without meeting links")
Text("• Customizable appearance for events without meeting links")
Text("• Localization")
Text("• Create meetings in Jam")
Text("• Open event in Fantastical from event submenu")
Expand Down
12 changes: 12 additions & 0 deletions MeetingBar/UI/Views/Preferences/LinksTab.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ struct LinksTab: View {
@Default(.teamsBrowser) var teamsBrowser
@Default(.slackBrowser) var slackBrowser
@Default(.jitsiBrowser) var jitsiBrowser
@Default(.riversideBrowser) var riversideBrowser
@Default(.createMeetingServiceUrl) var createMeetingServiceUrl
@Default(.createMeetingService) var createMeetingService
@Default(.browsers) var allBrowser
Expand Down Expand Up @@ -99,6 +100,17 @@ struct LinksTab: View {
Text(browser.name).tag(browser)
}
}
Picker(
selection: $riversideBrowser,
label: Text("preferences_services_link_service_title".loco("Riverside")).frame(
width: 200, alignment: .leading)
) {
Text(systemDefaultBrowser.name).tag(systemDefaultBrowser)
Text(riversideAppBrowser.name).tag(riversideAppBrowser)
ForEach(allBrowser, id: \.self) { (browser: Browser) in
Text(browser.name).tag(browser)
}
}
}

GroupBox(label: Label("Create", systemImage: "plus.circle")) {
Expand Down
1 change: 1 addition & 0 deletions MeetingBar/Utilities/Constants.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ let zoomAppBrowser = Browser(name: "Zoom", path: "")
let teamsAppBrowser = Browser(name: "Teams", path: "")
let jitsiAppBrowser = Browser(name: "Jitsi", path: "")
let slackAppBrowser = Browser(name: "Slack", path: "")
let riversideAppBrowser = Browser(name: "Riverside", path: "")

enum statusbarEventTitleLengthLimits {
static let min = 5
Expand Down
Loading