|
5 | 5 | # Imports from dependencies:
|
6 | 6 | import spacegdn
|
7 | 7 | # Imports from mcman:
|
8 |
| -from mcman.utils import list_names, download, ask |
| 8 | +from mcman.utils import list_names, download, ask, checksum_file |
9 | 9 |
|
10 | 10 |
|
11 | 11 | class Servers(object):
|
@@ -193,5 +193,28 @@ def download(self):
|
193 | 193 |
|
194 | 194 | def identify(self):
|
195 | 195 | """ Identify what server a jar is. """
|
196 |
| - self.prnt('The SpaceGDN API currently have no way to search.', |
197 |
| - prefix=False) |
| 196 | + self.prnt('Calculating checksum of `{}`'.format(self.args.jar.name)) |
| 197 | + |
| 198 | + checksum = checksum_file(self.args.jar) |
| 199 | + |
| 200 | + self.prnt('Finding build on SpaceGDN') |
| 201 | + |
| 202 | + builds = spacegdn.builds(where='build.checksum.eq.{}'.format(checksum)) |
| 203 | + |
| 204 | + if len(builds) < 1: |
| 205 | + self.prnt('Found no build on SpaceGDN with matching checksum') |
| 206 | + return |
| 207 | + |
| 208 | + build = builds[0] |
| 209 | + server = spacegdn.jars(build['jar_id'])[0]['name'] |
| 210 | + channel = spacegdn.channels(build['jar_id'], |
| 211 | + build['channel_id'])[0]['name'] |
| 212 | + version = spacegdn.versions(build['jar_id'], build['channel_id'], |
| 213 | + build['version_id'])[0]['version'] |
| 214 | + build = build['build'] |
| 215 | + |
| 216 | + self.prnt('Found build:') |
| 217 | + self.prnt('', False, False) |
| 218 | + self.prnt('{} {} {} {}'.format(server, channel, version, build), |
| 219 | + filled_prefix=False) |
| 220 | + self.prnt('', False, False) |
0 commit comments