Package net.pterodactylus.sone.data

Examples of net.pterodactylus.sone.data.Album


        return;
      }
      String description = request.getHttpRequest().getPartAsStringFailsafe("description", 256).trim();
      Sone currentSone = getCurrentSone(request.getToadletContext());
      String parentId = request.getHttpRequest().getPartAsStringFailsafe("parent", 36);
      Album parent = webInterface.getCore().getAlbum(parentId, false);
      if (parentId.equals("")) {
        parent = currentSone.getRootAlbum();
      }
      Album album = webInterface.getCore().createAlbum(currentSone, parent);
      album.modify().setTitle(name).setDescription(TextFilter.filter(request.getHttpRequest().getHeader("host"), description)).update();
      webInterface.getCore().touchConfiguration();
      throw new RedirectException("imageBrowser.html?album=" + album.getId());
    }
  }
View Full Code Here


   * {@inheritDoc}
   */
  @Override
  protected JsonReturnObject createJsonObject(FreenetRequest request) {
    String albumId = request.getHttpRequest().getParam("album");
    Album album = webInterface.getCore().getAlbum(albumId, false);
    if (album == null) {
      return createErrorJsonObject("invalid-album-id");
    }
    if (!album.getSone().isLocal()) {
      return createErrorJsonObject("not-authorized");
    }
    if ("true".equals(request.getHttpRequest().getParam("moveLeft"))) {
      Album swappedAlbum = album.getParent().moveAlbumUp(album);
      webInterface.getCore().touchConfiguration();
      return createSuccessJsonObject().put("sourceAlbumId", album.getId()).put("destinationAlbumId", swappedAlbum.getId());
    }
    if ("true".equals(request.getHttpRequest().getParam("moveRight"))) {
      Album swappedAlbum = album.getParent().moveAlbumDown(album);
      webInterface.getCore().touchConfiguration();
      return createSuccessJsonObject().put("sourceAlbumId", album.getId()).put("destinationAlbumId", swappedAlbum.getId());
    }
    String title = request.getHttpRequest().getParam("title").trim();
    String description = request.getHttpRequest().getParam("description").trim();
    album.modify().setTitle(title).setDescription(TextFilter.filter(request.getHttpRequest().getHeader("host"), description)).update();
    webInterface.getCore().touchConfiguration();
View Full Code Here

  @Override
  protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException {
    super.processTemplate(request, templateContext);
    if (request.getMethod() == Method.POST) {
      String albumId = request.getHttpRequest().getPartAsStringFailsafe("album", 36);
      Album album = webInterface.getCore().getAlbum(albumId, false);
      if (album == null) {
        throw new RedirectException("invalid.html");
      }
      if (!album.getSone().isLocal()) {
        throw new RedirectException("noPermission.html");
      }
      if (request.getHttpRequest().isPartSet("abortDelete")) {
        throw new RedirectException("imageBrowser.html?album=" + album.getId());
      }
      Album parentAlbum = album.getParent();
      webInterface.getCore().deleteAlbum(album);
      if (parentAlbum.equals(album.getSone().getRootAlbum())) {
        throw new RedirectException("imageBrowser.html?sone=" + album.getSone().getId());
      }
      throw new RedirectException("imageBrowser.html?album=" + parentAlbum.getId());
    }
    String albumId = request.getHttpRequest().getParam("album");
    Album album = webInterface.getCore().getAlbum(albumId, false);
    if (album == null) {
      throw new RedirectException("invalid.html");
    }
    templateContext.set("album", album);
  }
View Full Code Here

  protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException {
    super.processTemplate(request, templateContext);
    if (request.getMethod() == Method.POST) {
      Sone currentSone = getCurrentSone(request.getToadletContext());
      String parentId = request.getHttpRequest().getPartAsStringFailsafe("parent", 36);
      Album parent = webInterface.getCore().getAlbum(parentId, false);
      if (parent == null) {
        /* TODO - signal error */
        return;
      }
      if (!currentSone.equals(parent.getSone())) {
        /* TODO - signal error. */
        return;
      }
      String name = request.getHttpRequest().getPartAsStringFailsafe("title", 200);
      String description = request.getHttpRequest().getPartAsStringFailsafe("description", 4000);
      HTTPUploadedFile uploadedFile = request.getHttpRequest().getUploadedFile("image");
      Bucket fileBucket = uploadedFile.getData();
      InputStream imageInputStream = null;
      ByteArrayOutputStream imageDataOutputStream = null;
      net.pterodactylus.sone.data.Image image = null;
      try {
        imageInputStream = fileBucket.getInputStream();
        /* TODO - check length */
        imageDataOutputStream = new ByteArrayOutputStream((int) fileBucket.size());
        ByteStreams.copy(imageInputStream, imageDataOutputStream);
      } catch (IOException ioe1) {
        logger.log(Level.WARNING, "Could not read uploaded image!", ioe1);
        return;
      } finally {
        fileBucket.free();
        Closer.close(imageInputStream);
        Closer.close(imageDataOutputStream);
      }
      byte[] imageData = imageDataOutputStream.toByteArray();
      ByteArrayInputStream imageDataInputStream = null;
      Image uploadedImage = null;
      try {
        imageDataInputStream = new ByteArrayInputStream(imageData);
        uploadedImage = ImageIO.read(imageDataInputStream);
        if (uploadedImage == null) {
          templateContext.set("messages", webInterface.getL10n().getString("Page.UploadImage.Error.InvalidImage"));
          return;
        }
        String mimeType = getMimeType(imageData);
        TemporaryImage temporaryImage = webInterface.getCore().createTemporaryImage(mimeType, imageData);
        image = webInterface.getCore().createImage(currentSone, parent, temporaryImage);
        image.modify().setTitle(name).setDescription(TextFilter.filter(request.getHttpRequest().getHeader("host"), description)).setWidth(uploadedImage.getWidth(null)).setHeight(uploadedImage.getHeight(null)).update();
      } catch (IOException ioe1) {
        logger.log(Level.WARNING, "Could not read uploaded image!", ioe1);
        return;
      } finally {
        Closer.close(imageDataInputStream);
        Closer.flush(uploadedImage);
      }
      throw new RedirectException("imageBrowser.html?album=" + parent.getId());
    }
  }
View Full Code Here

  @Override
  protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException {
    super.processTemplate(request, templateContext);
    String albumId = request.getHttpRequest().getParam("album", null);
    if (albumId != null) {
      Album album = webInterface.getCore().getAlbum(albumId, false);
      templateContext.set("albumRequested", true);
      templateContext.set("album", album);
      templateContext.set("page", request.getHttpRequest().getParam("page"));
      return;
    }
View Full Code Here

        String albumImageId = albumXml.getValue("album-image", null);
        if ((id == null) || (title == null) || (description == null)) {
          logger.log(Level.WARNING, String.format("Downloaded Sone %s contains invalid album!", sone));
          return null;
        }
        Album parent = null;
        if (parentId != null) {
          parent = core.getAlbum(parentId, false);
          if (parent == null) {
            logger.log(Level.WARNING, String.format("Downloaded Sone %s has album with invalid parent!", sone));
            return null;
          }
        }
        Album album = core.getAlbum(id).setSone(sone).modify().setTitle(title).setDescription(description).update();
        if (parent != null) {
          parent.addAlbum(album);
        } else {
          topLevelAlbums.add(album);
        }
        SimpleXML imagesXml = albumXml.getNode("images");
        if (imagesXml != null) {
          for (SimpleXML imageXml : imagesXml.getNodes("image")) {
            String imageId = imageXml.getValue("id", null);
            String imageCreationTimeString = imageXml.getValue("creation-time", null);
            String imageKey = imageXml.getValue("key", null);
            String imageTitle = imageXml.getValue("title", null);
            String imageDescription = imageXml.getValue("description", "");
            String imageWidthString = imageXml.getValue("width", null);
            String imageHeightString = imageXml.getValue("height", null);
            if ((imageId == null) || (imageCreationTimeString == null) || (imageKey == null) || (imageTitle == null) || (imageWidthString == null) || (imageHeightString == null)) {
              logger.log(Level.WARNING, String.format("Downloaded Sone %s contains invalid images!", sone));
              return null;
            }
            long creationTime = Numbers.safeParseLong(imageCreationTimeString, 0L);
            int imageWidth = Numbers.safeParseInteger(imageWidthString, 0);
            int imageHeight = Numbers.safeParseInteger(imageHeightString, 0);
            if ((imageWidth < 1) || (imageHeight < 1)) {
              logger.log(Level.WARNING, String.format("Downloaded Sone %s contains image %s with invalid dimensions (%s, %s)!", sone, imageId, imageWidthString, imageHeightString));
              return null;
            }
            Image image = core.getImage(imageId).modify().setSone(sone).setKey(imageKey).setCreationTime(creationTime).update();
            image = image.modify().setTitle(imageTitle).setDescription(imageDescription).update();
            image = image.modify().setWidth(imageWidth).setHeight(imageHeight).update();
            album.addImage(image);
          }
        }
        album.modify().setAlbumImage(albumImageId).update();
      }
    }

    /* process avatar. */
    if (avatarId != null) {
View Full Code Here

      return album.get();
    }
    if (!create) {
      return null;
    }
    Album newAlbum = database.newAlbumBuilder().withId(albumId).build();
    database.storeAlbum(newAlbum);
    return newAlbum;
  }
View Full Code Here

      String albumImageId = configuration.getStringValue(albumPrefix + "/AlbumImage").getValue(null);
      if ((albumTitle == null) || (albumDescription == null)) {
        logger.log(Level.WARNING, "Invalid album found, aborting load!");
        return;
      }
      Album album = getAlbum(albumId).setSone(sone).modify().setTitle(albumTitle).setDescription(albumDescription).setAlbumImage(albumImageId).update();
      if (albumParentId != null) {
        Album parentAlbum = getAlbum(albumParentId, false);
        if (parentAlbum == null) {
          logger.log(Level.WARNING, String.format("Invalid parent album ID: %s", albumParentId));
          return;
        }
        parentAlbum.addAlbum(album);
      } else {
        if (!topLevelAlbums.contains(album)) {
          topLevelAlbums.add(album);
        }
      }
    }

    /* load images. */
    int imageCounter = 0;
    while (true) {
      String imagePrefix = sonePrefix + "/Images/" + imageCounter++;
      String imageId = configuration.getStringValue(imagePrefix + "/ID").getValue(null);
      if (imageId == null) {
        break;
      }
      String albumId = configuration.getStringValue(imagePrefix + "/Album").getValue(null);
      String key = configuration.getStringValue(imagePrefix + "/Key").getValue(null);
      String title = configuration.getStringValue(imagePrefix + "/Title").getValue(null);
      String description = configuration.getStringValue(imagePrefix + "/Description").getValue(null);
      Long creationTime = configuration.getLongValue(imagePrefix + "/CreationTime").getValue(null);
      Integer width = configuration.getIntValue(imagePrefix + "/Width").getValue(null);
      Integer height = configuration.getIntValue(imagePrefix + "/Height").getValue(null);
      if ((albumId == null) || (key == null) || (title == null) || (description == null) || (creationTime == null) || (width == null) || (height == null)) {
        logger.log(Level.WARNING, "Invalid image found, aborting load!");
        return;
      }
      Album album = getAlbum(albumId, false);
      if (album == null) {
        logger.log(Level.WARNING, "Invalid album image encountered, aborting load!");
        return;
      }
      Image image = getImage(imageId).modify().setSone(sone).setCreationTime(creationTime).setKey(key).setTitle(title).setDescription(description).setWidth(width).setHeight(height).update();
      album.addImage(image);
    }

    /* load avatar. */
    String avatarId = configuration.getStringValue(sonePrefix + "/Profile/Avatar").getValue(null);
    if (avatarId != null) {
View Full Code Here

   *            The parent of the album (may be {@code null} to create a
   *            top-level album)
   * @return The new album
   */
  public Album createAlbum(Sone sone, Album parent) {
    Album album = database.newAlbumBuilder().randomId().build();
    database.storeAlbum(album);
    album.setSone(sone);
    parent.addAlbum(album);
    return album;
  }
View Full Code Here

  /**
   * {@inheritDoc}
   */
  @Override
  public Object get(TemplateContext templateContext, Object object, String member) {
    Album album = (Album) object;
    if ("backlinks".equals(member)) {
      List<Link> backlinks = new ArrayList<Link>();
      Album currentAlbum = album;
      while (!currentAlbum.isRoot()) {
        backlinks.add(0, new Link("imageBrowser.html?album=" + currentAlbum.getId(), currentAlbum.getTitle()));
        currentAlbum = currentAlbum.getParent();
      }
      backlinks.add(0, new Link("imageBrowser.html?sone=" + album.getSone().getId(), SoneAccessor.getNiceName(album.getSone())));
      return backlinks;
    }
    return super.get(templateContext, object, member);
View Full Code Here

TOP

Related Classes of net.pterodactylus.sone.data.Album

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.