From 76cff9554001ca3727e2ba11b790e9bba27d6b77 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 17 May 2018 16:29:15 +0300 Subject: Move all cache to ~/.cache/gomuks Now `rm -rf ~/.cache/gomuks` has the same effect as `/clearcache` --- config/session.go | 137 ------------------------------------------------------ 1 file changed, 137 deletions(-) delete mode 100644 config/session.go (limited to 'config/session.go') diff --git a/config/session.go b/config/session.go deleted file mode 100644 index d23c778..0000000 --- a/config/session.go +++ /dev/null @@ -1,137 +0,0 @@ -// gomuks - A terminal Matrix client written in Go. -// Copyright (C) 2018 Tulir Asokan -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -package config - -import ( - "encoding/json" - "io/ioutil" - "path/filepath" - - "maunium.net/go/gomatrix" - "maunium.net/go/gomuks/debug" - "maunium.net/go/gomuks/matrix/pushrules" - "maunium.net/go/gomuks/matrix/rooms" -) - -type Session struct { - UserID string `json:"-"` - path string - AccessToken string - NextBatch string - FilterID string - Rooms map[string]*rooms.Room - PushRules *pushrules.PushRuleset - - InitialSyncDone bool -} - -func (config *Config) LoadSession(mxid string) error { - config.Session = config.NewSession(mxid) - return config.Session.Load() -} - -func (config *Config) NewSession(mxid string) *Session { - return &Session{ - UserID: mxid, - path: filepath.Join(config.Dir, mxid+".session"), - Rooms: make(map[string]*rooms.Room), - } -} - -func (s *Session) GetUserID() string { - return s.UserID -} - -func (s *Session) Clear() { - s.Rooms = make(map[string]*rooms.Room) - s.PushRules = nil - s.NextBatch = "" - s.FilterID = "" - s.InitialSyncDone = false - s.Save() -} - -func (s *Session) Load() error { - data, err := ioutil.ReadFile(s.path) - if err != nil { - debug.Printf("Failed to read session from %s: %v", s.path, err) - return err - } - - err = json.Unmarshal(data, s) - if err != nil { - debug.Printf("Failed to parse session at %s: %v", s.path, err) - return err - } - return nil -} - -func (s *Session) Save() error { - data, err := json.Marshal(s) - if err != nil { - debug.Printf("Failed to marshal session of %s: %v", s.UserID, err) - return err - } - - err = ioutil.WriteFile(s.path, data, 0600) - if err != nil { - debug.Printf("Failed to write session of %s to %s: %v", s.UserID, s.path, err) - return err - } - return nil -} - -func (s *Session) LoadFilterID(_ string) string { - return s.FilterID -} - -func (s *Session) LoadNextBatch(_ string) string { - return s.NextBatch -} - -func (s *Session) GetRoom(mxid string) *rooms.Room { - room, _ := s.Rooms[mxid] - if room == nil { - room = rooms.NewRoom(mxid, s.UserID) - s.Rooms[room.ID] = room - } - return room -} - -func (s *Session) PutRoom(room *rooms.Room) { - s.Rooms[room.ID] = room - s.Save() -} - -func (s *Session) SaveFilterID(_, filterID string) { - s.FilterID = filterID - s.Save() -} - -func (s *Session) SaveNextBatch(_, nextBatch string) { - s.NextBatch = nextBatch - s.Save() -} - -func (s *Session) LoadRoom(mxid string) *gomatrix.Room { - return s.GetRoom(mxid).Room -} - -func (s *Session) SaveRoom(room *gomatrix.Room) { - s.GetRoom(room.ID).Room = room - s.Save() -} -- cgit v1.2.3