marc_palm
I'm new here

Nicht verwendete Medien in Liste ausgeben

Jump to solution

Hallo,

gibt es eine Möglichkeit die nicht verwendeten Medien in einer Liste auszugeben und gegebenenfalls zu löschen.

Vielleicht macht ein Skript Sinn? Wie kommt man per API an die 'Verwendungen anzeigen'-Option?

Vielen Dank.

Beste Grüße

Marc

1 Solution

Accepted Solutions
MarcusDau
Occasional Collector

Hi!

Hier ein rudimentäres Beanshell-Script, was genau das macht. Gibt einfach alles auf der Java-Konsole aus:

//!Beanshell

e = context.getStoreElement();

media = e.getChildren(de.espirit.firstspirit.access.store.mediastore.Media.class,true);

resolution = context.getProject().getResolutionByName("ORIGINAL");

mediumIterator = media.iterator();

int zaehler = 1;

while (mediumIterator.hasNext()) {

        try {

                medium = mediumIterator.next();

                if(!(medium.getIncomingReferences().length > 0)) {

                        if(medium.getType() == de.espirit.firstspirit.access.store.mediastore.Media.FILE) {

                            size = medium.getFile(context.getProject().getMasterLanguage()).getSize();

                        } else if(medium.getType() == de.espirit.firstspirit.access.store.mediastore.Media.PICTURE) {

                            size = medium.getPicture(context.getProject().getMasterLanguage()).getPictureResolution(resolution).getSize();

                        } else {

                            size = 0;

                        }

                        print("nicht referenziertes Medium " + zaehler++ + ": " + medium.uid + "(id=" + medium.id + "), (Size =" + size.toString() + "b)");

                }

        } catch (Exception e) {

                context.logError("Exception:", e);

        }

}

Sollte zumindest als Ansatz schon mal ganz okay sein!

View solution in original post

1 Reply
MarcusDau
Occasional Collector

Hi!

Hier ein rudimentäres Beanshell-Script, was genau das macht. Gibt einfach alles auf der Java-Konsole aus:

//!Beanshell

e = context.getStoreElement();

media = e.getChildren(de.espirit.firstspirit.access.store.mediastore.Media.class,true);

resolution = context.getProject().getResolutionByName("ORIGINAL");

mediumIterator = media.iterator();

int zaehler = 1;

while (mediumIterator.hasNext()) {

        try {

                medium = mediumIterator.next();

                if(!(medium.getIncomingReferences().length > 0)) {

                        if(medium.getType() == de.espirit.firstspirit.access.store.mediastore.Media.FILE) {

                            size = medium.getFile(context.getProject().getMasterLanguage()).getSize();

                        } else if(medium.getType() == de.espirit.firstspirit.access.store.mediastore.Media.PICTURE) {

                            size = medium.getPicture(context.getProject().getMasterLanguage()).getPictureResolution(resolution).getSize();

                        } else {

                            size = 0;

                        }

                        print("nicht referenziertes Medium " + zaehler++ + ": " + medium.uid + "(id=" + medium.id + "), (Size =" + size.toString() + "b)");

                }

        } catch (Exception e) {

                context.logError("Exception:", e);

        }

}

Sollte zumindest als Ansatz schon mal ganz okay sein!