From 0f7fc1e9607870ac0d6c7c0ada0d284d3fe152d7 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Tue, 4 Feb 2020 20:07:28 +1000 Subject: [PATCH] add proper version --- rslib/src/lib.rs | 4 ++++ rslib/src/media/sync.rs | 11 +++++++---- rspy/src/lib.rs | 3 +++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/rslib/src/lib.rs b/rslib/src/lib.rs index c6fabe2e3..d3ff6d8a1 100644 --- a/rslib/src/lib.rs +++ b/rslib/src/lib.rs @@ -5,6 +5,10 @@ mod backend_proto; +pub fn version() -> &'static str { + include_str!("../../meta/version").trim() +} + pub mod backend; pub mod cloze; pub mod err; diff --git a/rslib/src/media/sync.rs b/rslib/src/media/sync.rs index 4cff14b0e..dfbd467d2 100644 --- a/rslib/src/media/sync.rs +++ b/rslib/src/media/sync.rs @@ -7,6 +7,7 @@ use crate::media::files::{ add_file_from_ankiweb, data_for_file, normalize_filename, remove_files, AddedFile, }; use crate::media::{register_changes, MediaManager}; +use crate::version; use bytes::Bytes; use log::debug; use reqwest; @@ -19,8 +20,6 @@ use std::io::{Read, Write}; use std::path::Path; use std::{io, time}; -// fixme: version string - static SYNC_MAX_FILES: usize = 25; static SYNC_MAX_BYTES: usize = (2.5 * 1024.0 * 1024.0) as usize; @@ -71,12 +70,12 @@ where } async fn sync_begin(&self, hkey: &str) -> Result<(String, i32)> { - let url = format!("{}/begin", self.endpoint); + let url = format!("{}begin", self.endpoint); let resp = self .client .get(&url) - .query(&[("k", hkey), ("v", "ankidesktop,2.1.19,mac")]) + .query(&[("k", hkey), ("v", &version_string())]) .send() .await? .error_for_status()?; @@ -602,6 +601,10 @@ fn zip_files(media_folder: &Path, files: &[MediaEntry]) -> Result> { Ok(w.into_inner()) } +fn version_string() -> String { + format!("anki,{},{}", version(), std::env::consts::OS) +} + #[derive(Serialize)] struct FinalizeRequest { local: u32, diff --git a/rspy/src/lib.rs b/rspy/src/lib.rs index 79456e084..729623099 100644 --- a/rspy/src/lib.rs +++ b/rspy/src/lib.rs @@ -1,3 +1,6 @@ +// Copyright: Ankitects Pty Ltd and contributors +// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html + use anki::backend::{init_backend, Backend as RustBackend}; use log::error; use pyo3::prelude::*;