throw new ProducerFailure("FileDateSettingProducerNode: expression " + dateExpression + " does not evaluate to a Date!", null );
if (!aFile.setLastModified(((Date) date).getTime())) {
- aLogger.print("Can't set date for " + aFile.getName());
+ aLogger.println("Can't set date for " + aFile.getName());
}
}
catch (Throwable t) {
private class ContentToIconField implements CalculatedField {
public Object getValue(EntityAdapter anEntityAdapter) {
-// EntityUploadedMedia uploadedMedia;
EntityAdapter media;
Entity mediaType;
RewindableIterator iterator;
String iconAlt;
try {
-/* iterator = (RewindableIterator) (anEntityAdapter.get("to_uploaded_media"));
+ iterator = (RewindableIterator) (anEntityAdapter.get("to_uploaded_media"));
iterator.rewind();
- browser =
- new EntityBrowser(
- DatabaseUploadedMedia.getInstance(),
- "exists (select * from content_x_media where content_id="+anEntityAdapter.get("id")+" and media_id=id)",
- "id",
- 1);
-*/
tinyIcon = MirGlobal.getConfigProperty("Producer.Icon.TinyText");
iconAlt = "Text";
-/* if (iterator.hasNext()) {
+ if (iterator.hasNext()) {
media = (EntityAdapter) iterator.next();
- mediaType = ((EntityMedia) (media.getEntity())).getMediaType();
+ mediaType = ((EntityUploadedMedia) (media.getEntity())).getMediaType();
mediaHandler = MediaHelper.getHandler( mediaType );
if (mediaHandler.isVideo()) {
tinyIcon = mediaHandler.getTinyIcon();
iconAlt = mediaHandler.getIconAlt();
}
-*/
+
}
}
catch (Throwable t) {
System.out.println("ContentToIconField: exception: " +t.getMessage());
- t.printStackTrace(t);
+ t.printStackTrace(System.out);
throw new RuntimeException(t.getMessage());
}
public void afterContentPosting() {
MirGlobal.producerEngine().addJob("content", "new");
+ MirGlobal.producerEngine().addJob("media", "new");
MirGlobal.producerEngine().addJob("openposting", "new");
+ MirGlobal.producerEngine().addJob("topics", "new");
MirGlobal.producerEngine().addJob("startpage", "(default)");
MirGlobal.producerEngine().addJob("synchronization", "run");
MirGlobal.localizer().producerTool().closeWriter( printWriter );
}
catch (Throwable t) {
+ aLogger.println(" error while generating: " + t.getMessage());
+ aLogger.flush();
}
endTime = System.currentTimeMillis();
--- /dev/null
+package mircoders.producer;
+
+import java.util.*;
+import java.io.*;
+import mir.util.*;
+import mir.misc.*;
+import mir.media.*;
+import mir.producer.*;
+import mir.generator.*;
+import mir.entity.*;
+import mir.entity.adapter.*;
+//import mircoders.global.*;
+//import mircoders.localizer.*;
+import mircoders.entity.*;
+import mircoders.storage.*;
+
+public class MediaGeneratingProducerNode implements ProducerNode {
+ private String mediaEntityKey;
+
+ public MediaGeneratingProducerNode(String aMediaEntityKey) {
+ mediaEntityKey = aMediaEntityKey;
+ }
+
+ public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure {
+ Object data;
+ Entity entity;
+ Entity currentMediaType;
+ MirMedia currentMediaHandler;
+
+ try {
+ data = ParameterExpander.findValueForKey( aValueMap, mediaEntityKey );
+
+ if (!(data instanceof EntityAdapter)) {
+ throw new ProducerFailure("MediaGeneratingProducerNode: value of '"+mediaEntityKey+"' is not an EntityAdapter, but an " + data.getClass().getName(), null);
+ }
+
+ entity = ((EntityAdapter) data).getEntity();
+ if (! (entity instanceof EntityUploadedMedia)) {
+ throw new ProducerFailure("MediaGeneratingProducerNode: value of '"+mediaEntityKey+"' is not an uploaded media EntityAdapter, but a " + entity.getClass().getName() + " adapter", null);
+ }
+
+ currentMediaType = DatabaseUploadedMedia.getInstance().getMediaType(entity);
+
+ currentMediaHandler = MediaHelper.getHandler( currentMediaType );
+ currentMediaHandler.produce(entity,currentMediaType);
+ entity.setValueForProperty("publish_server", currentMediaHandler.getPublishHost());
+ entity.setValueForProperty("icon_is_produced", "1");
+ entity.setValueForProperty("is_produced", "1");
+ entity.update();
+ }
+ catch (Throwable t) {
+ aLogger.println("Error while generating media: " + t.getMessage());
+ t.printStackTrace(aLogger);
+
+ throw new ProducerFailure(t.getMessage(), t);
+ }
+ }
+
+ public Set buildVerbSet() {
+ return new HashSet();
+ }
+}
String mediaTypeId = null;
MirMedia mediaHandler;
Database mediaStorage;
- ProducerMedia mediaProducer;
+// ProducerMedia mediaProducer;
//if we didn't find an entry matching the
//content-type int the table.
mediaHandler = MediaHelper.getHandler(mediaType);
mediaStorage = MediaHelper.getStorage(mediaType,
"mircoders.storage.Database");
- Class prodCls = Class.forName("mircoders.producer.Producer"
- +mediaType.getValue("tablename"));
- mediaProducer = (ProducerMedia)prodCls.newInstance();
+// Class prodCls = Class.forName("mircoders.producer.Producer"
+// +mediaType.getValue("tablename"));
+// mediaProducer = (ProducerMedia)prodCls.newInstance();
} catch (Exception e) {
theLog.printError("getting media handler failed: "+e.toString());
contentModule.deleteById(cid);
mediaEnt.setValueForProperty("is_published","1");
mediaEnt.update();
//produce it
- mediaProducer.handle(null, null, false, false, mediaId);
+// mediaProducer.handle(null, null, false, false, mediaId);
DatabaseContentToMedia.getInstance().addMedia(cid,mediaId);
} catch (Exception e) {
theLog.printError("setting media failed: "+e.toString());
contentNode =
new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
new CompositeProducerNode( new ProducerNode[] {
- new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
- new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
- new CompositeProducerNode( new ProducerNode[] {
- new GeneratingProducerNode(
- "/producer/bolivia.indymedia.org/article.template",
- "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
- ),
- new FileDateSettingProducerNode(
- "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
- "content.date.date"
- )
- } )
+ new EntityEnumeratingProducerNode( "city", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "main_url='c' and exists(select * from content_x_topic where content_id=${content.id} and topic_id=id", "",
+ new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+ new CompositeProducerNode( new ProducerNode[] {
+ new GeneratingProducerNode(
+ "/producer/bolivia.indymedia.org/article.template",
+ "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
+ ),
+ new FileDateSettingProducerNode(
+ "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
+ "content.webdb_create.raw"
+ )
+ } )
+ )
)
),
new ContentMarkingProducerNode( "content")
new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
new GeneratingProducerNode(
"/producer/bolivia.indymedia.org/startpage.template",
- "${config.storageRoot}/${language.code}/${city.filename}/index.shtml"
+ "${config.storageRoot}/${city.filename}/${language.code}/index.shtml"
)
)
)
new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
"", "code", 10, 0,
new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
- new ResourceBundleProducerNode("lang", "producer_${language.code}",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
new GeneratingProducerNode(
"/producer/indymedia.nl/topic.template",
"${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
"", "code", 10, 0,
new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
- new ResourceBundleProducerNode("lang", "producer_${language.code}",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
new GeneratingProducerNode(
"/producer/indymedia.nl/topicnavigation.template",
"${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"