extragear/multimedia/amarok/src/podcasts

Maximilian Kossick maximilian.kossick at googlemail.com
Wed Mar 12 07:20:08 CET 2008


On Wed, Mar 12, 2008 at 12:24 AM, Ian Monroe <ian at monroe.nu> wrote:
> I think Bart ccmailed the wrong list. :)
>
>  It sounds like a bad idea to have something like the podcast depend on
>  the local collection. But it has to get access to SQL from somewhere.
>
>  Ian

It's not depending on the local collection, it depends on SqlStorage.
We can simply supply another implementation in
CollectionManager::sqlStorage if we decide to drop SqlCollection and
use nepomuk dor example. As long as nobody tries to dynamic_cast
collections to SqlStorage, we don't have to change any code outside of
CollectionManager/SqlCollection

>  ---------- Forwarded message ----------
>  From: Bart Cerneels <bart.cerneels at kde.org>
>  Date: Tue, Mar 11, 2008 at 6:03 PM
>  Subject: extragear/multimedia/amarok/src/podcasts
>  To: kde-commits at kde.org
>  Cc: kde-devel at kde.org
>
>
>  SVN commit 784657 by shanachie:
>
>   Start of the SQL implementation for the PodcastCollection. I plan to
>  hijack the local collection and create these tables in there,
>  toghether with the other local stuff. Please speak up if anyone thinks
>  that is a bad idea.
>   CCMAIL:kde-devel at kde.org
>
>
>   M  +41 -0     PodcastCollection.cpp
>   M  +6 -0      PodcastCollection.h
>
>
>   --- trunk/extragear/multimedia/amarok/src/podcasts/PodcastCollection.cpp
>  #784656:784657
>   @@ -24,6 +24,7 @@
>   #include "debug.h"
>   #include "PodcastReader.h"
>   #include "support/MemoryQueryMaker.h"
>   +#include "SqlStorage.h"
>   #include "TheInstances.h"
>
>   #include <kurl.h>
>   @@ -252,4 +253,44 @@
>      return playlistList;
>   }
>
>   +//SQL storage stuff
>   +void
>   +PodcastCollection::createTables() const
>   +{
>   +    DEBUG_BLOCK
>   +
>   +    m_sqlStorage->query( QString( "CREATE TABLE podcastchannels "
>   +                    "(id " + m_sqlStorage->idType() + ","
>   +                    "url " + m_sqlStorage->exactTextColumnType() + " UNIQUE,"
>   +                    "title " + m_sqlStorage->textColumnType() + ","
>   +                    "weblink " + m_sqlStorage->exactTextColumnType() + ","
>   +                    "image " + m_sqlStorage->exactTextColumnType() + ","
>   +                    "comment " + m_sqlStorage->longTextColumnType() + ","
>   +                    "copyright "  + m_sqlStorage->textColumnType() + ","
>   +                    "directory "  + m_sqlStorage->textColumnType() + ","
>   +                    "labels" + m_sqlStorage->textColumnType() + ","
>   +                    "autoscan BOOL, fetchtype INTEGER, "
>   +                    "autotransfer BOOL, haspurge BOOL, purgecount
>  INTEGER );" ) );
>   +
>   +    m_sqlStorage->query( QString( "CREATE TABLE podcastepisodes ("
>   +                    "id " + m_sqlStorage->idType() + ","
>   +                    "url " + m_sqlStorage->exactTextColumnType() + " UNIQUE,"
>   +                    "localurl " + m_sqlStorage->exactTextColumnType() + ","
>   +                    "parent " + m_sqlStorage->exactTextColumnType() + ","
>   +                    "guid " + m_sqlStorage->exactTextColumnType() + ","
>   +                    "title " + m_sqlStorage->textColumnType() + ","
>   +                    "subtitle " + m_sqlStorage->textColumnType() + ","
>   +                    "composer " + m_sqlStorage->textColumnType() + ","
>   +                    "comment " + m_sqlStorage->longTextColumnType() + ","
>   +                    "filetype "  + m_sqlStorage->textColumnType() + ","
>   +                    "createdate "  + m_sqlStorage->textColumnType() + ","
>   +                    "length INTEGER,"
>   +                    "size INTEGER,"
>   +                    "isNew BOOL );" ));
>   +
>   +    m_sqlStorage->query( "CREATE INDEX url_podchannel ON
>  podcastchannels( url );" );
>   +    m_sqlStorage->query( "CREATE INDEX url_podepisode ON
>  podcastepisodes( url );" );
>   +    m_sqlStorage->query( "CREATE INDEX localurl_podepisode ON
>  podcastepisodes( localurl );" );
>   +}
>   +
>   #include "PodcastCollection.moc"
>   --- trunk/extragear/multimedia/amarok/src/podcasts/PodcastCollection.h
>  #784656:784657
>   @@ -30,6 +30,7 @@
>   class KUrl;
>   class PodcastReader;
>   class PodcastChannelProvider;
>   +class SqlStorage;
>
>   /**
>         @author Bart Cerneels <bart.cerneels at gmail.com>
>   @@ -79,6 +80,11 @@
>      private:
>          static PodcastCollection *s_instance;
>
>   +        /** creates all the necessary tables, indexes etc. for the database */
>   +        void createTables() const;
>   +
>   +        SqlStorage *m_sqlStorage;
>   +
>          Meta::PodcastChannelList m_channels;
>          PodcastChannelProvider *m_channelProvider;
>  _______________________________________________
>  Amarok-devel mailing list
>  Amarok-devel at kde.org
>  https://mail.kde.org/mailman/listinfo/amarok-devel
>


More information about the Amarok-devel mailing list