Add files via upload

This commit is contained in:
Lia Brüggemann 2023-09-11 02:40:16 +02:00 committed by GitHub
parent 6469338265
commit 68304989ba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 342 additions and 0 deletions

40
go.mod Normal file
View file

@ -0,0 +1,40 @@
module Watson
go 1.20
require github.com/hugolgst/rich-go v0.0.0-20210925091458-d59fb695d9c0
require (
fyne.io/systray v1.10.1-0.20230722100817-88df1e0ffa9a // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/fredbi/uri v1.0.0 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/fyne-io/gl-js v0.0.0-20220119005834-d2da28d9ccfe // indirect
github.com/fyne-io/glfw-js v0.0.0-20220120001248-ee7290d23504 // indirect
github.com/fyne-io/image v0.0.0-20220602074514-4956b0afb3d2 // indirect
github.com/go-gl/gl v0.0.0-20211210172815-726fda9656d6 // indirect
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20221017161538-93cebf72946b // indirect
github.com/go-text/render v0.0.0-20230619120952-35bccb6164b8 // indirect
github.com/go-text/typesetting v0.0.0-20230616162802-9c17dd34aa4a // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/gopherjs/gopherjs v1.17.2 // indirect
github.com/jsummers/gobmp v0.0.0-20151104160322-e2ba15ffa76e // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c // indirect
github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef // indirect
github.com/stretchr/testify v1.8.4 // indirect
github.com/tevino/abool v1.2.0 // indirect
github.com/yuin/goldmark v1.5.5 // indirect
golang.org/x/image v0.11.0 // indirect
golang.org/x/mobile v0.0.0-20230531173138-3c911d8e3eda // indirect
golang.org/x/net v0.14.0 // indirect
golang.org/x/sys v0.11.0 // indirect
golang.org/x/text v0.12.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
honnef.co/go/js/dom v0.0.0-20210725211120-f030747120f2 // indirect
)
require (
fyne.io/fyne/v2 v2.4.0
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
)

302
main.go Normal file
View file

@ -0,0 +1,302 @@
package main
import (
"time"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
"github.com/hugolgst/rich-go/client"
"fyne.io/fyne/v2/layout"
)
func main() {
a := app.New()
w := a.NewWindow("Watson")
//Reading things
BookToRead := widget.NewEntry()
BookToRead.PlaceHolder = "The Book Your are Reading"
BookGenre := widget.NewEntry()
BookGenre.PlaceHolder = "The Genre of your Book"
LinkToBook := widget.NewEntry()
LinkToBook.PlaceHolder = "The Link To The Book"
//Talking things
TalkToWho := widget.NewEntry()
TalkToWho.PlaceHolder = "Who Are you talking to?"
WhereTalk := widget.NewEntry()
WhereTalk.PlaceHolder = "Link to a Discord Server you are Talking on"
//Browsing things
Site := widget.NewEntry()
Site.PlaceHolder = "Name of the Site You are Browsing"
SiteURL := widget.NewEntry()
SiteURL.PlaceHolder = "The Link To The Site"
//Streaming things
TitleOfStream := widget.NewEntry()
TitleOfStream.PlaceHolder = "Title of your Stream"
StreamLink := widget.NewEntry()
StreamLink.PlaceHolder = "Link To your Stream"
BrowsingPage := container.New(
layout.NewVBoxLayout(),
layout.NewSpacer(),
Site,
SiteURL,
layout.NewSpacer(),
)
TalkingPage := container.New(
layout.NewVBoxLayout(),
layout.NewSpacer(),
TalkToWho,
WhereTalk,
layout.NewSpacer(),
)
ReadingPage := container.New(
layout.NewVBoxLayout(),
layout.NewSpacer(),
layout.NewSpacer(),
BookToRead,
BookGenre,
LinkToBook,
layout.NewSpacer(),
)
StramingPage := container.New(
layout.NewVBoxLayout(),
layout.NewSpacer(),
TitleOfStream,
StreamLink,
layout.NewSpacer(),
)
HomePage := container.New(
layout.NewVBoxLayout(),
layout.NewSpacer(),
widget.NewSelect([]string{"Talking", "Reading", "Streaming", "Browsing"}, func(value string) {
switch value {
case "Reading":
StartReading(BookToRead.Text, BookGenre.Text, LinkToBook.Text)
case "Talking":
StartTalking(TalkToWho.Text, WhereTalk.Text)
case "Browsing":
StartBrowsing(Site.Text, SiteURL.Text)
case "Streaming":
StartStreaming(TitleOfStream.Text, StreamLink.Text)
}
}),
layout.NewSpacer(),
)
tabs := container.NewAppTabs(
container.NewTabItem("Home", HomePage),
container.NewTabItem("Reading", ReadingPage),
container.NewTabItem("Talking", TalkingPage),
container.NewTabItem("Browsing", BrowsingPage),
container.NewTabItem("Streaming", StramingPage),
)
tabs.SetTabLocation(container.TabLocationLeading)
w.SetContent(tabs)
w.Resize(fyne.NewSize(1920/2, 1080/2))
w.ShowAndRun()
}
func StartReading(NameOfBook string, BookGenre string, LinkToBook string) {
if LinkToBook == "" {
err := client.Login("1150554899541671996")
if err != nil {
panic(err)
}
now := time.Now()
err = client.SetActivity(client.Activity{
State: "Reading",
Details: "I'm currently Reading: " + NameOfBook,
LargeImage: "book",
LargeText: "Genre: " + BookGenre,
Timestamps: &client.Timestamps{
Start: &now,
},
})
} else {
err := client.Login("1150554899541671996")
if err != nil {
panic(err)
}
now := time.Now()
err = client.SetActivity(client.Activity{
State: "Reading",
Details: "I'm currently Reading: " + NameOfBook,
LargeImage: "book",
LargeText: "Genre: " + BookGenre,
Timestamps: &client.Timestamps{
Start: &now,
},
Buttons: []*client.Button{
&client.Button{
Label: "Link To Book",
Url: LinkToBook,
},
},
})
}
}
func StartTalking(NameOfPartner string, DiscordLink string) {
if DiscordLink == "" {
err := client.Login("1150554899541671996")
if err != nil {
panic(err)
}
now := time.Now()
err = client.SetActivity(client.Activity{
State: "Talking",
Details: "I'm talking with " + NameOfPartner,
LargeImage: "talk",
Timestamps: &client.Timestamps{
Start: &now,
},
})
} else {
err := client.Login("1150554899541671996")
if err != nil {
panic(err)
}
now := time.Now()
err = client.SetActivity(client.Activity{
State: "Talking",
Details: "I'm talking with " + NameOfPartner,
LargeImage: "talk",
Timestamps: &client.Timestamps{
Start: &now,
},
Buttons: []*client.Button{
&client.Button{
Label: "Link To Book",
Url: DiscordLink,
},
},
})
}
}
func StartBrowsing(Site string, SiteURL string) {
if SiteURL == "" {
err := client.Login("1150554899541671996")
if err != nil {
panic(err)
}
now := time.Now()
err = client.SetActivity(client.Activity{
State: "Browsing",
Details: "Currently on " + Site,
LargeImage: "search",
Timestamps: &client.Timestamps{
Start: &now,
},
})
} else {
err := client.Login("1150554899541671996")
if err != nil {
panic(err)
}
now := time.Now()
err = client.SetActivity(client.Activity{
State: "Browsing",
Details: "Currently on " + Site,
LargeImage: "search",
Timestamps: &client.Timestamps{
Start: &now,
},
Buttons: []*client.Button{
&client.Button{
Label: "Visit Site",
Url: SiteURL,
},
},
})
}
}
func StartStreaming(Title string, URL string) {
if URL == "" {
err := client.Login("1150554899541671996")
if err != nil {
panic(err)
}
now := time.Now()
err = client.SetActivity(client.Activity{
State: "Hi Im Currently Streaming",
Details: Title,
LargeImage: "stream",
Timestamps: &client.Timestamps{
Start: &now,
},
})
} else {
err := client.Login("1150554899541671996")
if err != nil {
panic(err)
}
now := time.Now()
err = client.SetActivity(client.Activity{
State: "Hi Im Currently Streaming",
Details: Title,
LargeImage: "stream",
Timestamps: &client.Timestamps{
Start: &now,
},
Buttons: []*client.Button{
&client.Button{
Label: "Watch my Stream",
Url: URL,
},
},
})
}
}