Package se.despotify

Examples of se.despotify.ManagedConnection


    /* Register channel. */
    Channel.register(channel);

    /* Send packet. */
    ManagedConnection connection = connectionManager.getManagedConnection();
    connection.getProtocol().sendPacket(PacketType.changePlaylist, buffer, value ? "set playlist collaborative flag true" : "set playlist collaborative flag false");

    /* Get response. */
    byte[] data = callback.getData(value ? "set playlist collaborative flag true response" : "set playlist collaborative flag false reponse");
    connection.close();


    xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><playlist>" +
            new String(data, Charset.forName("UTF-8")) +
            "</playlist>";
View Full Code Here


  @Override
  public Boolean send(ConnectionManager connectionManager) throws DespotifyException {

    if (user == null) {
      ManagedConnection connection = connectionManager.getManagedConnection();
      user = connection.getSession().getUser();
      connection.close();
    }

    if (playlist.isCollaborative() == null) {
      playlist.setCollaborative(false);
    }

    ChannelCallback callback = new ChannelCallback();

    /* Create channel and buffer. */
    Channel channel = new Channel("Create-Playlist-Channel", Channel.Type.TYPE_PLAYLIST, callback);

    if (user.getPlaylists() == null) {
      log.warn("user playlists not loaded yet! should it be? loading..");
      new LoadUserPlaylists(store, user).send(connectionManager);
    }
    PlaylistContainer playlists = user.getPlaylists();

    playlists.getItems().add(playlist);

    if (position == null) {
      position = playlists.getItems().size() - 1;
    }

    String xml = String.format
        ("<change><ops><add><i>%s</i><items>%s</items></add></ops><time>%s</time><user>%s</user></change>" +
            "<version>%010d,%010d,%010d,%d</version>",
            // change
            position,
            Hex.toHex(playlist.getByteUUID()) + "02",
            new Date().getTime() / 1000,
            user.getId(),
            // version
            playlists.getRevision() + 1,         // new revision of user playlists
            playlists.getItems().size(),         // new size of user playlists
            playlists.calculateChecksum(),       // new checksum of user playlists
            playlist.isCollaborative() ? 1 : 0
        );

    byte[] xmlBytes = xml.getBytes();
    ByteBuffer buffer = ByteBuffer.allocate(2 + 16 + 1 + 4 + 4 + 4 + 1 + 1 + xmlBytes.length);

    buffer.putShort((short) channel.getId());
    buffer.put(Hex.toBytes("00000000000000000000000000000000")); // UUID? not used
    buffer.put((byte) 0x00); // type? not used
    buffer.putInt((int) playlists.getRevision()); // previous revision of user playlists
    buffer.putInt(position);
    buffer.putInt((int) playlists.getChecksum()); // previous checksum of user playlists

    buffer.put((byte) (playlist.isCollaborative() ? 0x01 : 0x00));
    buffer.put((byte) 0x03); // unknown
    buffer.put(xmlBytes);
    buffer.flip();

    /* Register channel. */
    Channel.register(channel);

    /* Send packet. */
    ManagedConnection connection = connectionManager.getManagedConnection();
    connection.getProtocol().sendPacket(PacketType.changePlaylist, buffer, "create playlist");

    /* Get response. */
    byte[] data = callback.getData("create playlist response");
    connection.close();

    xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<playlists>\n" +
        new String(data, Charset.forName("UTF-8")) +
        "\n</playlists>";

View Full Code Here

    buffer.flip();
    /* Register channel. */
    Channel.register(channel);

    /* Send packet. */
    ManagedConnection connection = connectionManager.getManagedConnection();
    connection.getProtocol().sendPacket(PacketType.getPlaylist, buffer, "get playlist");

    /* Get data and inflate it. */
    data = callback.getData("get playlist response");
    connection.close();
   
    if (data.length == 0) {
      throw new ReceivedEmptyResponseException();
    }

View Full Code Here

    /* Register channel. */
    Channel.register(channel);

    /* Send packet. */
    ManagedConnection connection = connectionManager.getManagedConnection();
//    timeRequest.start();
    connection.getProtocol().sendPacket(PacketType.browse, buffer, "load artist");

    /* Get data and inflate it. */
    byte[] data = callback.getData("gzipped load artist response");
//    timeRequest.stop();
    connection.close();



    if (log.isInfoEnabled()) {
      log.info("load artist response, " + data.length + " uncompressed bytes:\n" + Hex.log(data, log));
View Full Code Here

    /* Register channel. */
    Channel.register(channel);

    /* Send packet. */
    ManagedConnection connection = connectionManager.getManagedConnection();
    connection.getProtocol().sendPacket(PacketType.browse, buffer, "load album");

//    INFO  Protocol - sending load album, 26 bytes:
//        1   3    5  7   |9   11  13  15  |17  19  21  23  |25  27  29  31  |           1111111112222222222333
//          2   4   6   8 |  10  12  14  16|  18  20  22  24|  26  28  31  32| 12345678901234567890123456789012
//        ----------------|----------------|----------------|----------------|----------------------------------
//        30001700000202f8 df4ad52d449caca8 c6a25d2eca080000 0000             [0????????J?-D?????].??????]


    /* Get data and inflate it. */
    byte[] data = callback.getData("gzipped load album response");
    connection.close();

    data = GZIP.inflate(data);

    if (log.isInfoEnabled()) {
      log.info("load album response, " + data.length + " uncompressed bytes:\n" + Hex.log(data, log));
View Full Code Here

    /* Register channel. */
    Channel.register(channel);

    /* Send packet. */
    ManagedConnection connection = connectionManager.getManagedConnection();
    connection.getProtocol().sendPacket(PacketType.image, buffer, "load image");
    connection.close();

      /* Get data. */
    image.setBytes(callback.getData("load image response"));

    image.setLoaded(new Date());
View Full Code Here

    /* Register channel. */
    Channel.register(channel);

    /* Send packet. */
    ManagedConnection connection = connectionManager.getManagedConnection();
    connection.getProtocol().sendPacket(PacketType.browse, buffer, "load artist");

    /* Get data and inflate it. */
    byte[] data = GZIP.inflate(callback.getData("gzipped load artist response"));
    connection.close();


    if (log.isInfoEnabled()) {
      log.info("load artist response, " + data.length + " uncompressed bytes:\n" + Hex.log(data, log));
    }
View Full Code Here

    /* Register channel. */
    Channel.register(channel);

    /* Send packet. */
    ManagedConnection connection = connectionManager.getManagedConnection();
    connection.getProtocol().sendPacket(PacketType.browse, buffer, "load album");

//    INFO  Protocol - sending load album, 26 bytes:
//        1   3    5  7   |9   11  13  15  |17  19  21  23  |25  27  29  31  |           1111111112222222222333
//          2   4   6   8 |  10  12  14  16|  18  20  22  24|  26  28  31  32| 12345678901234567890123456789012
//        ----------------|----------------|----------------|----------------|----------------------------------
//        30001700000202f8 df4ad52d449caca8 c6a25d2eca080000 0000             [0????????J?-D?????].??????]


    /* Get data and inflate it. */
    byte[] data = GZIP.inflate(callback.getData("gzipped load album response"));
    connection.close();

    if (log.isInfoEnabled()) {
      log.info("load album response, " + data.length + " uncompressed bytes:\n" + Hex.log(data, log));
    }

View Full Code Here

    /* Register channel. */
    Channel.register(channel);

    /* Send packet. */
    ManagedConnection connection = connectionManager.getManagedConnection();
    connection.getProtocol().sendPacket(PacketType.search, buffer, "search");

    /* Get data and inflate it. */
    byte[] data = GZIP.inflate(callback.getData("gzipped search response"));
    connection.close();

    if (log.isInfoEnabled()) {
      log.info("received search response packet, " + data.length + " uncompressed bytes:\n" + Hex.log(data, log));
    }

View Full Code Here

    buffer.putInt(-1); // unknown
    buffer.put((byte)0x00); // 00 = get playlist ids, 01 = do not get playlist ids?
    buffer.flip();

    Channel.register(channel);
    ManagedConnection connection = connectionManager.getManagedConnection();
    connection.getProtocol().sendPacket(PacketType.getPlaylist, buffer, "request list of user playlists");


    byte[] data = callback.getData("user playlists response");
    connection.close();
          
    if (data.length == 0) {
      throw new DespotifyException("received an empty response!");
    }
View Full Code Here

TOP

Related Classes of se.despotify.ManagedConnection

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.