aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/service/avatar_storage.vala
diff options
context:
space:
mode:
Diffstat (limited to 'libdino/src/service/avatar_storage.vala')
-rw-r--r--libdino/src/service/avatar_storage.vala54
1 files changed, 0 insertions, 54 deletions
diff --git a/libdino/src/service/avatar_storage.vala b/libdino/src/service/avatar_storage.vala
deleted file mode 100644
index 26c98e12..00000000
--- a/libdino/src/service/avatar_storage.vala
+++ /dev/null
@@ -1,54 +0,0 @@
-using Gdk;
-
-using Xmpp;
-
-namespace Dino {
-public class AvatarStorage : Xep.PixbufStorage, Object {
-
- string folder;
-
- public AvatarStorage(string folder) {
- this.folder = folder;
- DirUtils.create_with_parents(folder, 0700);
- }
-
- public void store(string id, Bytes data) {
- File file = File.new_for_path(Path.build_filename(folder, id));
- try {
- if (file.query_exists()) file.delete(); //TODO y?
- DataOutputStream fos = new DataOutputStream(file.create(FileCreateFlags.REPLACE_DESTINATION));
- fos.write_bytes_async.begin(data);
- } catch (Error e) {
- // Ignore: we failed in storing, so we refuse to display later...
- }
- }
-
- public bool has_image(string id) {
- File file = File.new_for_path(Path.build_filename(folder, id));
- return file.query_exists();
- }
-
- public async Pixbuf? get_image(string id) {
- try {
- File file = File.new_for_path(Path.build_filename(folder, id));
- FileInputStream stream = yield file.read_async();
-
- uint8 fbuf[1024];
- size_t size;
-
- Checksum checksum = new Checksum (ChecksumType.SHA1);
- while ((size = yield stream.read_async(fbuf)) > 0) {
- checksum.update(fbuf, size);
- }
-
- if (checksum.get_string() != id) {
- FileUtils.remove(file.get_path());
- }
- stream.seek(0, SeekType.SET);
- return yield new Pixbuf.from_stream_async(stream, null);
- } catch (Error e) {
- return null;
- }
- }
-}
-}