Use crates.io API to get newest package version

Test: updater.sh update rust/crates/<some_package>
Change-Id: Id4f712d4ab3ed732cf84ebb9a727195e0c8a2a6a
diff --git a/crates_updater.py b/crates_updater.py
index 13378eb..b26034f 100644
--- a/crates_updater.py
+++ b/crates_updater.py
@@ -28,10 +28,6 @@
 
 CRATES_IO_URL_RE = re.compile(CRATES_IO_URL_PATTERN)
 
-VERSION_PATTERN = r'([0-9]+)\.([0-9]+)\.([0-9]+)'
-
-VERSION_MATCHER = re.compile(VERSION_PATTERN)
-
 
 class CratesUpdater():
     """Updater for crates.io packages."""
@@ -49,30 +45,16 @@
         self.new_version = None
         self.dl_path = None
 
-    def _get_version_numbers(self, version):
-        match = VERSION_MATCHER.match(version)
-        if match is not None:
-            return tuple(int(match.group(i)) for i in range(1, 4))
-        return (0, 0, 0)
-
-    def _is_newer_version(self, prev_version, prev_id, check_version, check_id):
-        """Return true if check_version+id is newer than prev_version+id."""
-        return ((self._get_version_numbers(check_version), check_id) >
-                (self._get_version_numbers(prev_version), prev_id))
-
     def check(self):
         """Checks crates.io and returns whether a new version is available."""
-        url = 'https://crates.io/api/v1/crates/{}/versions'.format(self.package)
+        url = "https://crates.io/api/v1/crates/" + self.package
         with urllib.request.urlopen(url) as request:
             data = json.loads(request.read().decode())
-        last_id = 0
-        self.new_version = ''
-        for v in data['versions']:
-            if not v['yanked'] and self._is_newer_version(
-                self.new_version, last_id, v['num'], int(v['id'])):
-                last_id = int(v['id'])
-                self.new_version = v['num']
-                self.dl_path = v['dl_path']
+            self.new_version = data["crate"]["max_version"]
+        url = url + "/" + self.new_version
+        with urllib.request.urlopen(url) as request:
+            data = json.loads(request.read().decode())
+            self.dl_path = data["version"]["dl_path"]
         print('Current version: {}. Latest version: {}'.format(
             self.get_current_version(), self.new_version), end='')