Browse Source

preview via files

master
gsd 3 weeks ago
parent
commit
944eb18e5c
  1. 8
      src/main/java/app/controllers/FileController.java
  2. 3
      src/main/java/app/repositories/FileRepository.java
  3. 15
      src/main/java/app/updates/PreviewUpdater.java

8
src/main/java/app/controllers/FileController.java

@ -140,4 +140,12 @@ public class FileController {
throw new RuntimeException("Cannot find: " + tags);
return endpoint+"/"+dbFile.getId();
}
public String getUrlWithNameAndTag(String filename, String tag) {
logger.info("Search {} with tag: {} in files", filename, tag);
DbFile dbFile = fileRepository.getDbFileByFilenameAndTag(filename + ".%", tag);
if (dbFile == null)
throw new RuntimeException("Cannot find: " + filename);
return endpoint+"/"+dbFile.getId();
}
}

3
src/main/java/app/repositories/FileRepository.java

@ -10,4 +10,7 @@ import java.util.UUID;
public interface FileRepository extends CrudRepository<DbFile, UUID> {
@Query("select f from DbFile f where position(:tags in f.tags) > 0 order by f.timestamp desc limit 1")
DbFile getDbFilesByTag(@Param(value = "tags") String tags);
@Query("select f from DbFile f where f.filename like :filename and position(:tag in f.tags) > 0 order by f.timestamp desc limit 1")
DbFile getDbFileByFilenameAndTag(@Param(value = "filename") String filename, @Param(value = "tag") String tag);
}

15
src/main/java/app/updates/PreviewUpdater.java

@ -1,5 +1,6 @@
package app.updates;
import app.controllers.FileController;
import app.entities.Stats;
import app.entities.server.Server;
import jakarta.annotation.PostConstruct;
@ -24,12 +25,14 @@ public class PreviewUpdater extends BaseUpdater{
//@Value("${backend.updates.a2s}")
private boolean update = true;
private HashMap<String, String> preview_cache;
private FileController fileController;
@Autowired
public PreviewUpdater(Stats stats) {
public PreviewUpdater(Stats stats, FileController fileController) {
this.stats = stats;
restTemplate = new RestTemplate();
preview_cache = new HashMap();
this.fileController = fileController;
}
@PostConstruct
@ -68,6 +71,10 @@ public class PreviewUpdater extends BaseUpdater{
public String getPreview(String map) {
String url;
//Check dbfile
try {
url = fileController.getUrlWithNameAndTag(map, "map");
} catch (Exception ignored) {}
//Check jpg
url = preview.formatted(domain, map, "jpg");
@ -75,19 +82,19 @@ public class PreviewUpdater extends BaseUpdater{
logger.info("Request: {}", url);
restTemplate.headForHeaders(url);
return url;
} catch (RestClientException err) {}
} catch (RestClientException ignored) {}
//Check txt contained url
url = preview.formatted(domain, map, "url");
try {
logger.info("Request: {}", url);
return restTemplate.getForEntity(url, String.class).getBody().replace("\n", "");
} catch (RestClientException err) {}
} catch (RestClientException ignored) {}
return null;
}
public String not_found() {
return preview.formatted(domain, "_default", "jpg");
return fileController.getUrlWithNameAndTag("_default", "map");
}
}

Loading…
Cancel
Save