diff --git a/.gitignore b/.gitignore
index b62741867..6dd830e09 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,7 +26,8 @@ obj/
_ReSharper*/
[Tt]est[Rr]esult[s]
-/[Bb]uild/
-
+[Bb]uild/
+[Ll]ogs/
+/[Pp]ackage/
#NZBDrone specific
nzbdrone.db
\ No newline at end of file
diff --git a/IISExpress/AppServer/applicationhost.config b/IISExpress/AppServer/applicationhost.config
index 39716f173..351a77d65 100644
--- a/IISExpress/AppServer/applicationhost.config
+++ b/IISExpress/AppServer/applicationhost.config
@@ -134,7 +134,7 @@
-->
-
+
@@ -161,7 +161,7 @@
-
+
diff --git a/NzbDrone.Core.Test/DbConfigControllerTest.cs b/NzbDrone.Core.Test/DbConfigControllerTest.cs
index 911003abb..4e7f962aa 100644
--- a/NzbDrone.Core.Test/DbConfigControllerTest.cs
+++ b/NzbDrone.Core.Test/DbConfigControllerTest.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Text;
using Gallio.Framework;
-using log4net;
using MbUnit.Framework;
using MbUnit.Framework.ContractVerifiers;
using Moq;
diff --git a/NzbDrone.Core.Test/EpisodeProviderTest.cs b/NzbDrone.Core.Test/EpisodeProviderTest.cs
index d4fa50f60..95e9c5c5e 100644
--- a/NzbDrone.Core.Test/EpisodeProviderTest.cs
+++ b/NzbDrone.Core.Test/EpisodeProviderTest.cs
@@ -1,9 +1,18 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Text;
+using FizzWare.NBuilder;
using Gallio.Framework;
using MbUnit.Framework;
using MbUnit.Framework.ContractVerifiers;
+using Moq;
+using Ninject;
+using Ninject.Moq;
+using NzbDrone.Core.Providers;
+using SubSonic.Repository;
+using TvdbLib.Data;
+using SubSonic.Extensions;
namespace NzbDrone.Core.Test
{
@@ -11,6 +20,37 @@ namespace NzbDrone.Core.Test
// ReSharper disable InconsistentNaming
public class EpisodeProviderTest
{
+ [Test]
+ public void BulkAddSpeedTest()
+ {
+ //Arrange
+ int seriesId = 71663;
+ int episodeCount = 500;
+ var fakeEpisodes = Builder.CreateNew().With(
+ c => c.Episodes =
+ new List(Builder.CreateListOfSize(episodeCount).
+ WhereAll()
+ .Have(l => l.Language = new TvdbLanguage(0, "eng", "a"))
+ .Build())
+ ).With(c => c.Id = seriesId).Build();
+ var tvdbMock = new Mock();
+ tvdbMock.Setup(c => c.GetSeries(seriesId, true)).Returns(fakeEpisodes).Verifiable();
+
+ var kernel = new MockingKernel();
+ kernel.Bind().ToConstant(MockLib.GetEmptyRepository(false)).InSingletonScope();
+ kernel.Bind().ToConstant(tvdbMock.Object);
+ kernel.Bind().To().InSingletonScope();
+
+ //Act
+ var sw = Stopwatch.StartNew();
+ kernel.Get().RefreshEpisodeInfo(seriesId);
+
+
+ //Assert
+ tvdbMock.VerifyAll();
+ Assert.Count(episodeCount, kernel.Get().GetEpisodeBySeries(seriesId));
+ Console.WriteLine("Duration: " + sw.Elapsed.ToString());
+ }
}
}
diff --git a/NzbDrone.Core.Test/MockLib.cs b/NzbDrone.Core.Test/MockLib.cs
index 2e7235079..befc76cf1 100644
--- a/NzbDrone.Core.Test/MockLib.cs
+++ b/NzbDrone.Core.Test/MockLib.cs
@@ -3,7 +3,9 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
+
using Moq;
+using NLog;
using NzbDrone.Core.Providers;
using SubSonic.DataProviders;
using SubSonic.Repository;
@@ -16,6 +18,7 @@ namespace NzbDrone.Core.Test
///
static class MockLib
{
+
public static string[] StandardSeries
{
get { return new string[] { "c:\\tv\\the simpsons", "c:\\tv\\family guy", "c:\\tv\\southpark", "c:\\tv\\24" }; }
@@ -23,7 +26,17 @@ namespace NzbDrone.Core.Test
public static IRepository GetEmptyRepository()
{
+ return GetEmptyRepository(true);
+ }
+ public static IRepository GetEmptyRepository(bool enableLogging)
+ {
+ Console.WriteLine("Creating an empty SQLite database");
var provider = ProviderFactory.GetProvider("Data Source=" + Guid.NewGuid() + ".testdb;Version=3;New=True", "System.Data.SQLite");
+ if (enableLogging)
+ {
+ provider.Log = new Instrumentation.NlogWriter();
+ provider.LogParams = true;
+ }
return new SimpleRepository(provider, SimpleRepositoryOptions.RunMigrations);
}
diff --git a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
index 357ecb3b9..0ea79321a 100644
--- a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
+++ b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj
@@ -36,10 +36,6 @@
Libs\FizzWare.NBuilder.dll
-
- False
- ..\NzbDrone.Core\Libraries\log4net.dll
-
False
@@ -49,6 +45,7 @@
False
..\NzbDrone.Core\Libraries\Ninject.dll
+
False
..\NzbDrone.Core\Libraries\SubSonic.Core.dll
@@ -106,6 +103,10 @@
Designer
+
+ Designer
+ Always
+
-
+
- Represents a rating entry from thetvdb
+ Cleanup internal state.
-
+
- Which item type is this rating for
+ Gets a value indicating whether the current transform can be reused.
-
+
- Community Rating is a double value from 0 to 10 and is the mean value of all user ratings for this item
+ Gets the size of the input data blocks in bytes.
-
+
- The rating from this user
+ Gets the size of the output data blocks in bytes.
-
+
- Enum with all items on thetvdb that can be rated
+ Gets a value indicating whether multiple blocks can be transformed.
-
+
- Item is a series
+ PkzipClassic CryptoTransform for decryption.
-
+
- Item is an episode
+ Initialise a new instance of .
+ The key block to decrypt with.
-
+
- Represents exception conditions specific to Zip archive handling
+ Transforms the specified region of the specified byte array.
+ The input for which to compute the transform.
+ The offset into the byte array from which to begin using data.
+ The number of bytes in the byte array to use as data.
+ The computed transform.
-
+
- Deserialization constructor
+ Transforms the specified region of the input byte array and copies
+ the resulting transform to the specified region of the output byte array.
- for this constructor
- for this constructor
+ The input for which to compute the transform.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write the transform.
+ The offset into the output byte array from which to begin writing data.
+ The number of bytes written.
-
+
- Initializes a new instance of the ZipException class.
+ Cleanup internal state.
-
+
- Initializes a new instance of the ZipException class with a specified error message.
+ Gets a value indicating whether the current transform can be reused.
- The error message that explains the reason for the exception.
-
+
- Initialise a new instance of ZipException.
+ Gets the size of the input data blocks in bytes.
- A message describing the error.
- The exception that is the cause of the current exception.
-
+
- Computes Adler32 checksum for a stream of data. An Adler32
- checksum is not as reliable as a CRC32 checksum, but a lot faster to
- compute.
-
- The specification for Adler32 may be found in RFC 1950.
- ZLIB Compressed Data Format Specification version 3.3)
-
-
- From that document:
-
- "ADLER32 (Adler-32 checksum)
- This contains a checksum value of the uncompressed data
- (excluding any dictionary data) computed according to Adler-32
- algorithm. This algorithm is a 32-bit extension and improvement
- of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073
- standard.
-
- Adler-32 is composed of two sums accumulated per byte: s1 is
- the sum of all bytes, s2 is the sum of all s1 values. Both sums
- are done modulo 65521. s1 is initialized to 1, s2 to zero. The
- Adler-32 checksum is stored as s2*65536 + s1 in most-
- significant-byte first (network) order."
-
- "8.2. The Adler-32 algorithm
-
- The Adler-32 algorithm is much faster than the CRC32 algorithm yet
- still provides an extremely low probability of undetected errors.
-
- The modulo on unsigned long accumulators can be delayed for 5552
- bytes, so the modulo operation time is negligible. If the bytes
- are a, b, c, the second sum is 3a + 2b + c + 3, and so is position
- and order sensitive, unlike the first sum, which is just a
- checksum. That 65521 is prime is important to avoid a possible
- large class of two-byte errors that leave the check unchanged.
- (The Fletcher checksum uses 255, which is not prime and which also
- makes the Fletcher check insensitive to single byte changes 0 -
- 255.)
-
- The sum s1 is initialized to 1 instead of zero to make the length
- of the sequence part of s2, so that the length does not have to be
- checked separately. (Any sequence of zeroes has a Fletcher
- checksum of zero.)"
+ Gets the size of the output data blocks in bytes.
-
+
- largest prime smaller than 65536
+ Gets a value indicating whether multiple blocks can be transformed.
-
+
- Creates a new instance of the Adler32 class.
- The checksum starts off with a value of 1.
+ Defines a wrapper object to access the Pkzip algorithm.
+ This class cannot be inherited.
-
+
- Resets the Adler32 checksum to the initial value.
+ Generate an initial vector.
-
+
- Updates the checksum with a byte value.
+ Generate a new random key.
-
- The data value to add. The high byte of the int is ignored.
-
-
+
- Updates the checksum with an array of bytes.
+ Create an encryptor.
-
- The source of the data to update with.
-
+ The key to use for this encryptor.
+ Initialisation vector for the new encryptor.
+ Returns a new PkzipClassic encryptor
-
+
- Updates the checksum with the bytes taken from the array.
+ Create a decryptor.
-
- an array of bytes
-
-
- the start of the data used for this update
-
-
- the number of bytes to use for this update
-
+ Keys to use for this new decryptor.
+ Initialisation vector for the new decryptor.
+ Returns a new decryptor.
-
+
- Returns the Adler32 data checksum computed so far.
+ Get / set the applicable block size in bits.
+ The only valid block size is 8.
-
+
- Represents an tvdb actor -> for more information see http://thetvdb.com/wiki/index.php/API:actors.xml
+ Get an array of legal key sizes.
-
+
- This matches the First, Second, Third, and Don't Care options on the site, which determine if the actor is shown on the series page or not. First (SortOrder=0), Second (SortOrder=1), and Third (SortOrder=2) generally mean the actor plays a primary role in the series. Don't Care (SortOrder=3) generally means the actor plays a lesser role. In some series there are no primary actors, so all actors will have a SortOrder of 3. The actors are also listed in the report in SortOrder, followed by those with images, and then finally by Name. So using the order they show up in the file is a valid method.
+ Get an array of legal block sizes.
-
+
- The name of the actor's character in the series. This may include multiple roles in comma-separated format.
+ Get / set the key value applicable.
-
+
+
+ This class allows us to retrieve a specified number of bits from
+ the input buffer, as well as copy big byte blocks.
+
+ It uses an int buffer to store up to 31 bits for direct
+ manipulation. This guarantees that we can get at least 16 bits,
+ but we only need at most 15, so this is all safe.
+
+ There are some optimizations in this class, for example, you must
+ never peek more than 8 bits more than needed, and you must first
+ peek bits before you may drop them. This is not a general purpose
+ class but optimized for the behaviour of the Inflater.
+
+ authors of the original java version : John Leuner, Jochen Hoenicke
+
+
+
- The actual name of the actor.
+ Constructs a default StreamManipulator with all buffers empty
-
+
- The image for the actor in this role.
+ Get the next sequence of bits but don't increase input pointer. bitCount must be
+ less or equal 16 and if this call succeeds, you must drop
+ at least n - 8 bits in the next call.
+ The number of bits to peek.
+
+ the value of the bits, or -1 if not enough bits available. */
+
-
+
- A unique id per actor. At some point actors will be globally unique but for now they're just unique per series.
+ Drops the next n bits from the input. You should have called PeekBits
+ with a bigger or equal n before, to make sure that enough bits are in
+ the bit buffer.
+ The number of bits to drop.
-
+
- Binary cache provider saves all the cached info into
-
- broken at the moment -> use CacheProvider
+ Gets the next n bits and increases input pointer. This is equivalent
+ to followed by , except for correct error handling.
+ The number of bits to retrieve.
+
+ the value of the bits, or -1 if not enough bits available.
+
-
+
- BinaryCacheProvider constructor
+ Skips to the next byte boundary.
- The root folder where the cached data should be stored
-
+
- Load the cached data
+ Copies bytes from input buffer to output buffer starting
+ at output[offset]. You have to make sure, that the buffer is
+ byte aligned. If not enough bytes are available, copies fewer
+ bytes.
- TvdbData object
+
+ The buffer to copy bytes to.
+
+
+ The offset in the buffer at which copying starts
+
+
+ The length to copy, 0 is allowed.
+
+
+ The number of bytes copied, 0 if no bytes were available.
+
+
+ Length is less than zero
+
+
+ Bit buffer isnt byte aligned
+
-
+
- Initialises the cache, should do the following things
- - initialise connections used for this cache provider (db connections, network shares,...)
- - create folder structure / db tables / ... if they are not created already
- - if this is the first time the cache has been initialised (built), mark last_updated with the
- current date
+ Resets state and empties internal buffers
- Tvdb Data object
-
+
- Closes the cache (e.g. close open connection, etc.)
+ Add more input for consumption.
+ Only call when IsNeedingInput returns true
- true if successful, false otherwise
+ data to be input
+ offset of first byte of input
+ number of bytes of input to add.
-
+
- Saves cache settings
+ Gets the number of bits available in the bit buffer. This must be
+ only called when a previous PeekBits() returned -1.
- settings
+
+ the number of bits available.
+
-
+
- Saves the time of the last update to cache
+ Gets the number of bytes available.
- time of last update
+
+ The number of bytes available.
+
-
+
- Save the language to cache
+ Returns true when SetInput can be called
- List of languages
-
+
- Save the mirror info to cache
+ Class that holds all user information
- list of mirrors
-
+
- Loads the available languages from cache
+ TvdbUser constructor
- List of available languages
+ Name of the user, can be choosen freely
+ User identifier from http://thetvdb.com
-
+
- Load the available mirrors from cache
+ TvdbUser constructor
- List of available mirrors
-
+
- Load the give series from cache
+ Preferred language of the user
- id of series to load
- loaded series, or null if not successful
-
+
- Saves the series to cache
+ This is the unique identifier assigned to every user. They can access this value by visiting the account settings page on the site. This is a 16 character alphanumeric string, but you should program your applications to handle id strings up to 32 characters in length.
- Tvdb series
-
+
- Saves the user data to cache
+ Username
- TvdbUser
-
+
- Loads all series from cache
+ List of user favorites
- List that contains all series object that had been previously cached
-
+
- Load the userinfo from the cache
+ Description of TvdbInvalidXmlException.
- Id of user
- TvdbUser object
-
+
- Receives a list of all series that have been cached
+ TvdbInvalidXmlException constructor
- Ids of series that are already cached
+ Message
-
+
- Check if the series is cached in the given configuration
+ TvdbInvalidXmlException constructor
- Id of the series
- Language of the series
- are episodes loaded
- are banners loaded
- are actors loaded
- true if the series is cached, false otherwise
+ Message
+ Inner Exception
-
+
- Completely refreshes the cached (all stored information is lost).
+ TvdbInvalidXmlException constructor
- true if the cache was cleared successfully,
- false otherwise (e.g. no write rights,...)
-
+
- Remove a specific series from cache
+ Series class holds all the info that can be retrieved from http://thetvdb.com.
+
+ Those are as follows:
+
+ - Base information:
+
+
+ 73739
+ |Malcolm David Kelley|Jorge Garcia|Maggie Grace|...|
+ Thursday
+ 9:00 PM
+ TV-14
+ 2004-09-22
+ |Action and Adventure|Drama|Science-Fiction|
+ tt0411008
+ en
+ ABC
+ After Oceanic Air flight 815...
+ 8.9
+ 60
+ 24313
+ Lost
+ Continuing
+ graphical/24313-g2.jpg
+ fanart/original/73739-1.jpg
+ 1205694666
+ SH672362
+
+
+ - Banner information
+ - Episode information
+ - Extended actor information
+
+ Each of those can be downloaded seperately. If the information is downloaded as
+ zipped file, everything is downloaded at once
- the id of the series
- true if the series was removed from the cache successfully,
- false otherwise (e.g. series not cached)
-
+
- Save the given image to cache
+ Basic constructor for the TvdbSeries class
- banner to save
- id of series
- filename (will be the same name used by LoadImageFromCache)
-
+
- Loads the specified image from the cache
+ Create a series object with all the information contained in the TvdbSeriesFields object
- series id
- filename of the image (same one as used by SaveToCache)
- The loaded image or null if the image wasn't found
+
-
+
- Removes the specified image from cache (if it has been cached)
+ Add a new language to the series
- id of series
- name of image
- true if image was removed successfully, false otherwise (e.g. image didn't exist)
+
-
+
- Load the time when the cache was updated last
+ Set the language of the series to one of the languages that have
+ already been loaded
- DateTime of lsat update
+ The new language for this series
+ true if success, false otherwise
-
+
- Is the cache provider initialised
+ Set the language of the series to one of the languages that have
+ already been loaded
+ The new language abbriviation for this series
+ true if success, false otherwise
-
+
- Class to store what parts of the cached series has been loaded
+ Get all languages that have already been loaded for this series
+ List of all translations that are loaded for this series
-
+
- constructor
+ Return a list of episodes for the given season
- Id of series
- Are episodes loaded
- Are banners loaded
- Are actors loaded
+ Season for which episodes should be returned
+ List of episodes for the given season
-
+
- Are actors loaded
+ returns SeriesName (SeriesId)
+ String representing this series
-
+
- Are banners loaded
+ Uptdate the info of the current series with the updated one
+ TvdbSeries object
-
+
- Are episodes loaded
+ Get all available Translations
-
+
- Id of series
+ Is the series a favorite
-
-
- This is an InflaterInputStream that reads the files baseInputStream an zip archive
- one after another. It has a special method to get the zip entry of
- the next file. The zip entry contains information about the file name
- size, compressed size, Crc, etc.
- It includes support for Stored and Deflated entries.
-
-
Author of the original java version : Jochen Hoenicke
-
-
- This sample shows how to read a zip file
-
- using System;
- using System.Text;
- using System.IO;
-
- using ICSharpCode.SharpZipLib.Zip;
-
- class MainClass
- {
- public static void Main(string[] args)
- {
- using ( ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]))) {
-
- ZipEntry theEntry;
- while ((theEntry = s.GetNextEntry()) != null) {
- int size = 2048;
- byte[] data = new byte[2048];
-
- Console.Write("Show contents (y/n) ?");
- if (Console.ReadLine() == "y") {
- while (true) {
- size = s.Read(data, 0, data.Length);
- if (size > 0) {
- Console.Write(new ASCIIEncoding().GetString(data, 0, size));
- } else {
- break;
- }
- }
- }
- }
- }
- }
- }
-
-
+
+
+ Returns the genre string in the format | genre1 | genre2 | genre3 |
+
-
+
- The current reader this instance.
+ Formatted String of actors that appear during this episode in the
+ format | actor1 | actor2 | actor3 |
-
+
- Creates a new Zip input stream, for reading a zip archive.
+ returns a list of all banners for this series
- The underlying providing data.
-
+
- Advances to the next entry in the archive
+ Is the banner info loaded
-
- The next entry in the archive or null if there are no more entries.
-
-
- If the previous entry is still open CloseEntry is called.
-
-
- Input stream is closed
-
-
- Password is not set, password is invalid, compression method is invalid,
- version required to extract is not supported
-
-
+
- Read data descriptor at the end of compressed data.
+ returns a list of all series banners for this series
-
+
- Complete cleanup as the final part of closing.
+ Returns a list of all season banners for this series
- True if the crc value should be tested
-
+
- Closes the current zip entry and moves to the next one.
+ Returns a list of all season banners for this series
-
- The stream is closed
-
-
- The Zip stream ends early
-
-
+
- Reads a byte from the current zip entry.
+ Returns a list of all fanart banners for this series
-
- The byte or -1 if end of stream is reached.
-
-
+
- Handle attempts to read by throwing an .
+ How many Season does the series have
- The destination array to store data in.
- The offset at which data read should be stored.
- The maximum number of bytes to read.
- Returns the number of bytes actually read.
-
+
- Handle attempts to read from this entry by throwing an exception
+ List of loaded tvdb actors
-
+
- Perform the initial read on an entry which may include
- reading encryption headers and setting up inflation.
+ Is the actor info loaded
- The destination to fill with data read.
- The offset to start reading at.
- The maximum number of bytes to read.
- The actual number of bytes read.
-
+
- Read a block of bytes from the stream.
+ Represents exception conditions specific to Zip archive handling
- The destination for the bytes.
- The index to start storing data.
- The number of bytes to attempt to read.
- Returns the number of bytes read.
- Zero bytes read means end of stream.
-
+
- Reads a block of bytes from the current zip entry.
+ Deserialization constructor
-
- The number of bytes read (this may be less than the length requested, even before the end of stream), or 0 on end of stream.
-
-
- An i/o error occured.
-
-
- The deflated stream is corrupted.
-
-
- The stream is not open.
-
+ for this constructor
+ for this constructor
-
+
- Closes the zip input stream
+ Initializes a new instance of the ZipException class.
-
+
- Optional password used for encryption when non-null
+ Initializes a new instance of the ZipException class with a specified error message.
- A password for all encrypted entries in this
+ The error message that explains the reason for the exception.
-
+
- Gets a value indicating if there is a current entry and it can be decompressed
+ Initialise a new instance of ZipException.
-
- The entry can only be decompressed if the library supports the zip features required to extract it.
- See the ZipEntry Version property for more details.
-
+ A message describing the error.
+ The exception that is the cause of the current exception.
-
+
- Returns 1 if there is an entry available
- Otherwise returns 0.
+ Strategies for deflater
-
+
- Returns the current size that can be read from the current entry if available
+ The default strategy
- Thrown if the entry size is not known.
- Thrown if no entry is currently available.
-
+
- Delegate for reading bytes from a stream.
+ This strategy will only allow longer string repetitions. It is
+ useful for random data with a small character set.
-
+
- Determines how entries are tested to see if they should use Zip64 extensions or not.
+ This strategy will not look for string repetitions at all. It
+ only encodes with Huffman trees (which means, that more common
+ characters get a smaller encoding.
-
+
- Zip64 will not be forced on entries during processing.
+ Low level compression engine for deflate algorithm which uses a 32K sliding window
+ with secondary compression from Huffman/Shannon-Fano codes.
- An entry can have this overridden if required
-
+
- Zip64 should always be used.
+ Construct instance with pending buffer
+
+ Pending buffer to use
+ >
-
+
- #ZipLib will determine use based on entry values when added to archive.
+ Deflate drives actual compression of data
+ True to flush input buffers
+ Finish deflation with the current input.
+ Returns true if progress has been made.
-
+
- The kind of compression used for an entry in an archive
+ Sets input data to be deflated. Should only be called when NeedsInput()
+ returns true
+ The buffer containing input data.
+ The offset of the first byte of data.
+ The number of bytes of data to use as input.
-
+
- A direct copy of the file contents is held in the archive
+ Determines if more input is needed.
+
+ Return true if input is needed via SetInput
+
+
+
+ Set compression dictionary
+ The buffer containing the dictionary data
+ The offset in the buffer for the first byte of data
+ The length of the dictionary data.
-
+
- Common Zip compression method using a sliding dictionary
- of up to 32KB and secondary compression from Huffman/Shannon-Fano trees
+ Reset internal state
+
+
+
+
+ Reset Adler checksum
+
+
+
+
+ Set the deflate level (0-9)
+ The value to set the level to.
-
+
- An extension to deflate with a 64KB window. Not supported by #Zip currently
+ Fill the window
-
+
- BZip2 compression. Not supported by #Zip.
+ Inserts the current string in the head hash and returns the previous
+ value for this hash.
+ The previous hash value
-
+
+
+ Find the best (longest) string in the window matching the
+ string starting at strstart.
+
+ Preconditions:
+
+ strstart + MAX_MATCH <= window.length.
+
+
+ True if a match greater than the minimum length is found
+
+
- WinZip special for AES encryption, Not supported by #Zip.
+ Hashtable, hashing three characters to an index for window, so
+ that window[index]..window[index+2] have this hash code.
+ Note that the array should really be unsigned short, so you need
+ to and the values with 0xffff.
-
+
- Identifies the encryption algorithm used for an entry
+ prev[index & WMASK]
points to the previous index that has the
+ same hash code as the string starting at index. This way
+ entries with the same hash code are in a linked list.
+ Note that the array should really be unsigned short, so you need
+ to and the values with 0xffff.
-
+
- No encryption has been used.
+ Points to the current character in the window.
-
+
- Encrypted using PKZIP 2.0 or 'classic' encryption.
+ lookahead is the number of characters starting at strstart in
+ window that are valid.
+ So window[strstart] until window[strstart+lookahead-1] are valid
+ characters.
+
+
+
+
+ This array contains the part of the uncompressed stream that
+ is of relevance. The current character is indexed by strstart.
-
+
- DES encryption has been used.
+ The current compression function.
-
+
- RCS encryption has been used for encryption.
+ The input data for compression.
-
+
- Triple DES encryption with 168 bit keys has been used for this entry.
+ The total bytes of input read.
-
+
- Triple DES with 112 bit keys has been used for this entry.
+ The offset into inputBuf, where input data starts.
-
+
- AES 128 has been used for encryption.
+ The end offset of the input data.
-
+
- AES 192 has been used for encryption.
+ The adler checksum
-
+
- AES 256 has been used for encryption.
-
+ Get current value of Adler checksum
+
-
+
- RC2 corrected has been used for encryption.
-
+ Total data processed
+
-
+
- Blowfish has been used for encryption.
-
+ Get/set the deflate strategy
+
-
+
- Twofish has been used for encryption.
+ Exception thrown when no user has been found
-
+
- RC4 has been used for encryption.
+ TvdbUserNotFoundException constructor
+ Message
-
+
- An unknown algorithm has been used for encryption.
+ Information on server structure and mirrors of tvdb
+
+ /api//
+ |---- mirrors.xml
+ |---- languages.xml
+ |
+ |---- series/
+ | |---- /
+ | |---- .xml (Base Series Record)
+ | |---- banners.xml (All banners related to this series)
+ | |
+ | |---- all/
+ | | |---- .xml (Full Series Record)
+ | | |---- .zip (Zipped version of Full Series Record and banners.xml)
+ | |
+ | |---- default/ (sorts using the default ordering method)
+ | | |---- //
+ | | |---- .xml (Base Episode Record)
+ | |
+ | |---- dvd/ (sorts using the dvd ordering method)
+ | | |---- //
+ | | |---- .xml (Base Episode Record)
+ | |
+ | |---- absolute/ (sorts using the absolute ordering method)
+ | |---- /
+ | |---- .xml (Base Episode Record)
+ |
+ |---- episodes
+ | |---- / (will return en.xml by default)
+ | |---- .xml (Base Episode Record)
+ |
+ |---- (updates)
+ |---- s.xml
+ |---- updates_.zip
+ ]]>
-
+
- Defines the contents of the general bit flags field for an archive entry.
+ Base server where all operations start
-
+
- Bit 0 if set indicates that the file is encrypted
+ Path of file where we get the available languages
-
+
- Bits 1 and 2 - Two bits defining the compression method (only for Method 6 Imploding and 8,9 Deflating)
+ Creates link which (depending on params) gets user favorites, adds a series to user
+ favorites or removes a series from the favorite lis
+
+
+
+ Link
-
+
- Bit 3 if set indicates a trailing data desciptor is appended to the entry data
+ Creates link which only retrieves the user favourites
+
+ Link
-
+
- Bit 4 is reserved for use with method 8 for enhanced deflation
+ Create link to get actor info
+ series id
+ api key
+ Link
-
+
- Bit 5 if set indicates the file contains Pkzip compressed patched data.
- Requires version 2.7 or greater.
+ create a link to all series rated by the user
+ api key
+ user identifier
+ Link
-
+
- Bit 6 if set strong encryption has been used for this entry.
+ create a link to all items rated by the user for this series
+ api key
+ user identifier
+ id of the series
+ Link
-
+
+
- Bit 7 is currently unused
+ Class representing the result of a tvdb name query -> for further information
+ visit http://thetvdb.com/wiki/index.php/API:GetSeries
-
+
- Bit 8 is currently unused
+ TvdbSearchResult constructor
-
+
- Bit 9 is currently unused
+ TvdbSearchResult constructor
+ Id of series
-
+
- Bit 10 is currently unused
+ Id of the returned series
-
+
- Bit 11 if set indicates the filename and
- comment fields for this file must be encoded using UTF-8.
+ Name of the returned series
-
+
- Bit 12 is documented as being reserved by PKware for enhanced compression.
+ When was the returned series aired first
-
+
- Bit 13 if set indicates that values in the local header are masked to hide
- their actual values, and the central directory is encrypted.
+ Language of the returned series
-
- Used when encrypting the central directory contents.
-
-
+
- Bit 14 is documented as being reserved for use by PKware
+ Overview of the returned series
-
+
- Bit 15 is documented as being reserved for use by PKware
+ Banner of the returned series
-
+
- This class contains constants used for Zip format files
+ Imdb id of the returned series
-
+
- The version made by field for entries in the central header when created by this library
+ Represents a rating entry from thetvdb
-
- This is also the Zip version for the library when comparing against the version required to extract
- for an entry.
-
-
+
- The version made by field for entries in the central header when created by this library
+ Which item type is this rating for
-
- This is also the Zip version for the library when comparing against the version required to extract
- for an entry. See ZipInputStream.CanDecompressEntry.
-
-
+
- The minimum version required to support strong encryption
+ Community Rating is a double value from 0 to 10 and is the mean value of all user ratings for this item
-
+
- The minimum version required to support strong encryption
+ The rating from this user
-
+
- The version required for Zip64 extensions
+ Enum with all items on thetvdb that can be rated
-
+
- Size of local entry header (excluding variable length fields at end)
+ Item is a series
-
+
- Size of local entry header (excluding variable length fields at end)
+ Item is an episode
-
+
- Size of Zip64 data descriptor
+ Determines how entries are tested to see if they should use Zip64 extensions or not.
-
+
- Size of data descriptor
+ Zip64 will not be forced on entries during processing.
+ An entry can have this overridden if required
-
+
- Size of data descriptor
+ Zip64 should always be used.
-
+
- Size of central header entry (excluding variable fields)
+ #ZipLib will determine use based on entry values when added to archive.
-
+
- Size of central header entry
+ The kind of compression used for an entry in an archive
-
+
- Size of end of central record (excluding variable fields)
+ A direct copy of the file contents is held in the archive
-
+
- Size of end of central record (excluding variable fields)
+ Common Zip compression method using a sliding dictionary
+ of up to 32KB and secondary compression from Huffman/Shannon-Fano trees
-
+
- Size of 'classic' cryptographic header stored before any entry data
+ An extension to deflate with a 64KB window. Not supported by #Zip currently
-
+
- Size of cryptographic header stored before entry data
+ BZip2 compression. Not supported by #Zip.
-
+
- Signature for local entry header
+ WinZip special for AES encryption, Not supported by #Zip.
-
+
- Signature for local entry header
+ Identifies the encryption algorithm used for an entry
-
+
- Signature for spanning entry
+ No encryption has been used.
-
+
- Signature for spanning entry
+ Encrypted using PKZIP 2.0 or 'classic' encryption.
-
+
- Signature for temporary spanning entry
+ DES encryption has been used.
-
+
- Signature for temporary spanning entry
+ RCS encryption has been used for encryption.
-
+
- Signature for data descriptor
+ Triple DES encryption with 168 bit keys has been used for this entry.
-
- This is only used where the length, Crc, or compressed size isnt known when the
- entry is created and the output stream doesnt support seeking.
- The local entry cannot be 'patched' with the correct values in this case
- so the values are recorded after the data prefixed by this header, as well as in the central directory.
-
-
+
- Signature for data descriptor
+ Triple DES with 112 bit keys has been used for this entry.
-
- This is only used where the length, Crc, or compressed size isnt known when the
- entry is created and the output stream doesnt support seeking.
- The local entry cannot be 'patched' with the correct values in this case
- so the values are recorded after the data prefixed by this header, as well as in the central directory.
-
-
+
- Signature for central header
+ AES 128 has been used for encryption.
-
+
- Signature for central header
+ AES 192 has been used for encryption.
-
+
- Signature for Zip64 central file header
+ AES 256 has been used for encryption.
-
+
- Signature for Zip64 central file header
+ RC2 corrected has been used for encryption.
-
+
- Signature for Zip64 central directory locator
+ Blowfish has been used for encryption.
-
+
- Signature for archive extra data signature (were headers are encrypted).
+ Twofish has been used for encryption.
-
+
- Central header digitial signature
+ RC4 has been used for encryption.
-
+
- Central header digitial signature
+ An unknown algorithm has been used for encryption.
-
+
- End of central directory record signature
+ Defines the contents of the general bit flags field for an archive entry.
-
+
- End of central directory record signature
+ Bit 0 if set indicates that the file is encrypted
-
+
- Convert a portion of a byte array to a string.
-
-
- Data to convert to string
-
-
- Number of bytes to convert starting from index 0
-
-
- data[0]..data[length - 1] converted to a string
-
+ Bits 1 and 2 - Two bits defining the compression method (only for Method 6 Imploding and 8,9 Deflating)
+
-
+
- Convert a byte array to string
+ Bit 3 if set indicates a trailing data desciptor is appended to the entry data
-
- Byte array to convert
-
-
- dataconverted to a string
-
-
+
- Convert a byte array to string
+ Bit 4 is reserved for use with method 8 for enhanced deflation
- The applicable general purpose bits flags
-
- Byte array to convert
-
- The number of bytes to convert.
-
- dataconverted to a string
-
-
+
- Convert a byte array to string
+ Bit 5 if set indicates the file contains Pkzip compressed patched data.
+ Requires version 2.7 or greater.
-
- Byte array to convert
-
- The applicable general purpose bits flags
-
- dataconverted to a string
-
-
+
- Convert a string to a byte array
+ Bit 6 if set strong encryption has been used for this entry.
-
- String to convert to an array
-
- Converted array
-
+
- Convert a string to a byte array
+ Bit 7 is currently unused
- The applicable general purpose bits flags
-
- String to convert to an array
-
- Converted array
-
+
- Initialise default instance of ZipConstants
+ Bit 8 is currently unused
-
- Private to prevent instances being created.
-
-
+
- Default encoding used for string conversion. 0 gives the default system OEM code page.
- Dont use unicode encodings if you want to be Zip compatible!
- Using the default code page isnt the full solution neccessarily
- there are many variable factors, codepage 850 is often a good choice for
- European users, however be careful about compatability.
+ Bit 9 is currently unused
-
+
- Strategies for deflater
+ Bit 10 is currently unused
-
+
- The default strategy
+ Bit 11 if set indicates the filename and
+ comment fields for this file must be encoded using UTF-8.
-
+
- This strategy will only allow longer string repetitions. It is
- useful for random data with a small character set.
+ Bit 12 is documented as being reserved by PKware for enhanced compression.
-
+
- This strategy will not look for string repetitions at all. It
- only encodes with Huffman trees (which means, that more common
- characters get a smaller encoding.
+ Bit 13 if set indicates that values in the local header are masked to hide
+ their actual values, and the central directory is encrypted.
+
+ Used when encrypting the central directory contents.
+
-
+
- Low level compression engine for deflate algorithm which uses a 32K sliding window
- with secondary compression from Huffman/Shannon-Fano codes.
+ Bit 14 is documented as being reserved for use by PKware
-
+
- Construct instance with pending buffer
+ Bit 15 is documented as being reserved for use by PKware
-
- Pending buffer to use
- >
-
+
- Deflate drives actual compression of data
+ This class contains constants used for Zip format files
- True to flush input buffers
- Finish deflation with the current input.
- Returns true if progress has been made.
-
+
- Sets input data to be deflated. Should only be called when NeedsInput()
- returns true
+ The version made by field for entries in the central header when created by this library
- The buffer containing input data.
- The offset of the first byte of data.
- The number of bytes of data to use as input.
+
+ This is also the Zip version for the library when comparing against the version required to extract
+ for an entry.
+
-
+
- Determines if more input is needed.
-
- Return true if input is needed via SetInput
+ The version made by field for entries in the central header when created by this library
+
+
+ This is also the Zip version for the library when comparing against the version required to extract
+ for an entry. See ZipInputStream.CanDecompressEntry.
+
-
+
- Set compression dictionary
+ The minimum version required to support strong encryption
- The buffer containing the dictionary data
- The offset in the buffer for the first byte of data
- The length of the dictionary data.
-
+
- Reset internal state
-
+ The minimum version required to support strong encryption
+
-
+
- Reset Adler checksum
-
+ The version required for Zip64 extensions
+
-
+
- Set the deflate level (0-9)
+ Size of local entry header (excluding variable length fields at end)
- The value to set the level to.
-
+
- Fill the window
+ Size of local entry header (excluding variable length fields at end)
-
+
- Inserts the current string in the head hash and returns the previous
- value for this hash.
+ Size of Zip64 data descriptor
- The previous hash value
-
-
-
- Find the best (longest) string in the window matching the
- string starting at strstart.
-
- Preconditions:
-
- strstart + MAX_MATCH <= window.length.
-
-
- True if a match greater than the minimum length is found
-
+
- Hashtable, hashing three characters to an index for window, so
- that window[index]..window[index+2] have this hash code.
- Note that the array should really be unsigned short, so you need
- to and the values with 0xffff.
+ Size of data descriptor
-
+
- prev[index & WMASK]
points to the previous index that has the
- same hash code as the string starting at index. This way
- entries with the same hash code are in a linked list.
- Note that the array should really be unsigned short, so you need
- to and the values with 0xffff.
+ Size of data descriptor
-
+
- Points to the current character in the window.
+ Size of central header entry (excluding variable fields)
-
+
- lookahead is the number of characters starting at strstart in
- window that are valid.
- So window[strstart] until window[strstart+lookahead-1] are valid
- characters.
+ Size of central header entry
-
+
- This array contains the part of the uncompressed stream that
- is of relevance. The current character is indexed by strstart.
+ Size of end of central record (excluding variable fields)
-
+
- The current compression function.
+ Size of end of central record (excluding variable fields)
-
+
- The input data for compression.
+ Size of 'classic' cryptographic header stored before any entry data
-
+
- The total bytes of input read.
+ Size of cryptographic header stored before entry data
-
+
- The offset into inputBuf, where input data starts.
+ Signature for local entry header
-
+
- The end offset of the input data.
+ Signature for local entry header
-
+
- The adler checksum
+ Signature for spanning entry
-
+
- Get current value of Adler checksum
-
+ Signature for spanning entry
+
-
+
- Total data processed
-
+ Signature for temporary spanning entry
+
-
+
- Get/set the deflate strategy
-
+ Signature for temporary spanning entry
+
-
+
- Logs internal messages
+ Signature for data descriptor
+
+ This is only used where the length, Crc, or compressed size isnt known when the
+ entry is created and the output stream doesnt support seeking.
+ The local entry cannot be 'patched' with the correct values in this case
+ so the values are recorded after the data prefixed by this header, as well as in the central directory.
+
-
+
- Logs the message at level Debug
+ Signature for data descriptor
- Message to log
+
+ This is only used where the length, Crc, or compressed size isnt known when the
+ entry is created and the output stream doesnt support seeking.
+ The local entry cannot be 'patched' with the correct values in this case
+ so the values are recorded after the data prefixed by this header, as well as in the central directory.
+
-
+
- Logs the message at level Debug
+ Signature for central header
- Message to log
- Exception to log
-
+
- Logs the message at level info
+ Signature for central header
- Message to log
-
+
- Logs the message at level info
+ Signature for Zip64 central file header
- Message to log
- Exception to log
-
+
- Logs the message at level Warn
+ Signature for Zip64 central file header
- Message to log
-
+
- Logs the message at level Warn
+ Signature for Zip64 central directory locator
- Message to log
- Exception to log
-
+
- Logs the message at level Error
+ Signature for archive extra data signature (were headers are encrypted).
- Message to log
-
+
- Logs the message at level Error
+ Central header digitial signature
- Message to log
- Exception to log
-
+
- Logs the message at level Fatal
+ Central header digitial signature
- Message to log
-
+
- Logs the message at level Fatal
+ End of central directory record signature
- Message to log
- Exception to log
-
+
- Logs the message at the given level
+ End of central directory record signature
- Message to log
- Level to log
-
+
- The loglevel that is currently used (default = warn)
-
+ Convert a portion of a byte array to a string.
+
+
+ Data to convert to string
+
+
+ Number of bytes to convert starting from index 0
+
+
+ data[0]..data[length - 1] converted to a string
+
-
+
- Loglevel
+ Convert a byte array to string
+
+ Byte array to convert
+
+
+ dataconverted to a string
+
-
- Logs debug messages
+
+
+ Convert a byte array to string
+
+ The applicable general purpose bits flags
+
+ Byte array to convert
+
+ The number of bytes to convert.
+
+ dataconverted to a string
+
-
- Logs info messages
+
+
+ Convert a byte array to string
+
+
+ Byte array to convert
+
+ The applicable general purpose bits flags
+
+ dataconverted to a string
+
-
- Logs warn messages
+
+
+ Convert a string to a byte array
+
+
+ String to convert to an array
+
+ Converted array
-
- Logs error messages
+
+
+ Convert a string to a byte array
+
+ The applicable general purpose bits flags
+
+ String to convert to an array
+
+ Converted array
-
- Logs fatal messages
+
+
+ Initialise default instance of ZipConstants
+
+
+ Private to prevent instances being created.
+
-
+
- An actor poster
- * Actor images must be 300px x 450px and must fill the entire image. Do not add black bars to the sides to get it to that size.
- * Actor images must be smaller than 100kb
- * Low quality images should not be scaled up to fit the resolution. Use only high quality art.
- * Actor images should show the actor in that particular role, wearing the clothes/makeup they'd wear on the series. Unless it's a cartoon, in which case just a normal picture of the voice actor will do.
- * Try to shy away from full body shots. Ideally include some upper body but don't go to far past the waist.
- * No nudity, even if the actor is playing the role of a striper who is almost always nude, the images must be family safe.
+ Default encoding used for string conversion. 0 gives the default system OEM code page.
+ Dont use unicode encodings if you want to be Zip compatible!
+ Using the default code page isnt the full solution neccessarily
+ there are many variable factors, codepage 850 is often a good choice for
+ European users, however be careful about compatability.
-
+
- Class that holds all user information
+ This is the DeflaterHuffman class.
+
+ This class is not thread safe. This is inherent in the API, due
+ to the split of Deflate and SetInput.
+
+ author of the original java version : Jochen Hoenicke
-
+
- TvdbUser constructor
+ Pending buffer to use
- Name of the user, can be choosen freely
- User identifier from http://thetvdb.com
-
+
- TvdbUser constructor
+ Construct instance with pending buffer
+ Pending buffer to use
-
+
- Preferred language of the user
-
+ Reset internal state
+
-
+
- This is the unique identifier assigned to every user. They can access this value by visiting the account settings page on the site. This is a 16 character alphanumeric string, but you should program your applications to handle id strings up to 32 characters in length.
+ Write all trees to pending buffer
+ The number/rank of treecodes to send.
-
+
- Username
+ Compress current buffer writing data to pending buffer
-
+
- List of user favorites
+ Flush block to output with no compression
+ Data to write
+ Index of first byte to write
+ Count of bytes to write
+ True if this is the last block
-
-
- This class allows us to retrieve a specified number of bits from
- the input buffer, as well as copy big byte blocks.
-
- It uses an int buffer to store up to 31 bits for direct
- manipulation. This guarantees that we can get at least 16 bits,
- but we only need at most 15, so this is all safe.
-
- There are some optimizations in this class, for example, you must
- never peek more than 8 bits more than needed, and you must first
- peek bits before you may drop them. This is not a general purpose
- class but optimized for the behaviour of the Inflater.
-
- authors of the original java version : John Leuner, Jochen Hoenicke
-
+
+
+ Flush block to output with compression
+
+ Data to flush
+ Index of first byte to flush
+ Count of bytes to flush
+ True if this is the last block
-
+
- Constructs a default StreamManipulator with all buffers empty
+ Get value indicating if internal buffer is full
+ true if buffer is full
-
+
- Get the next sequence of bits but don't increase input pointer. bitCount must be
- less or equal 16 and if this call succeeds, you must drop
- at least n - 8 bits in the next call.
+ Add literal to buffer
- The number of bits to peek.
-
- the value of the bits, or -1 if not enough bits available. */
-
+ Literal value to add to buffer.
+ Value indicating internal buffer is full
-
+
- Drops the next n bits from the input. You should have called PeekBits
- with a bigger or equal n before, to make sure that enough bits are in
- the bit buffer.
+ Add distance code and length to literal and distance trees
- The number of bits to drop.
+ Distance code
+ Length
+ Value indicating if internal buffer is full
-
+
- Gets the next n bits and increases input pointer. This is equivalent
- to followed by , except for correct error handling.
+ Reverse the bits of a 16 bit value.
- The number of bits to retrieve.
-
- the value of the bits, or -1 if not enough bits available.
-
+ Value to reverse bits
+ Value with bits reversed
-
+
- Skips to the next byte boundary.
+ Resets the internal state of the tree
-
+
- Copies bytes from input buffer to output buffer starting
- at output[offset]. You have to make sure, that the buffer is
- byte aligned. If not enough bytes are available, copies fewer
- bytes.
+ Check that all frequencies are zero
-
- The buffer to copy bytes to.
-
-
- The offset in the buffer at which copying starts
-
-
- The length to copy, 0 is allowed.
-
-
- The number of bytes copied, 0 if no bytes were available.
-
-
- Length is less than zero
-
-
- Bit buffer isnt byte aligned
+
+ At least one frequency is non-zero
-
+
- Resets state and empties internal buffers
+ Set static codes and length
+ new codes
+ length for new codes
-
+
- Add more input for consumption.
- Only call when IsNeedingInput returns true
+ Build dynamic codes and lengths
- data to be input
- offset of first byte of input
- number of bytes of input to add.
-
+
- Gets the number of bits available in the bit buffer. This must be
- only called when a previous PeekBits() returned -1.
+ Get encoded length
-
- the number of bits available.
-
+ Encoded length, the sum of frequencies * lengths
-
+
- Gets the number of bytes available.
+ Scan a literal or distance tree to determine the frequencies of the codes
+ in the bit length tree.
-
- The number of bytes available.
-
-
+
- Returns true when SetInput can be called
+ Write tree values
+ Tree to write
-
-
- Season bannners for each season of a series come in poster format (400 x 578) and wide format(758 x 140)
- - Wide format: http://thetvdb.com/wiki/index.php/Wide_Season_Banners
- - Poster format: http://thetvdb.com/wiki/index.php/Season_Banners
-
+
+
+ Generate a table for a byte-wise 32-bit CRC calculation on the polynomial:
+ x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
+
+ Polynomials over GF(2) are represented in binary, one bit per coefficient,
+ with the lowest powers in the most significant bit. Then adding polynomials
+ is just exclusive-or, and multiplying a polynomial by x is a right shift by
+ one. If we call the above polynomial p, and represent a byte as the
+ polynomial q, also with the lowest power in the most significant bit (so the
+ byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p,
+ where a mod b means the remainder after dividing a by b.
+
+ This calculation is done using the shift-register method of multiplying and
+ taking the remainder. The register is initialized to zero, and for each
+ incoming bit, x^32 is added mod p to the register if the bit is a one (where
+ x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by
+ x (which is shifting right by one and adding x^32 mod p if the bit shifted
+ out is a one). We start with the highest power (least significant bit) of
+ q and repeat for all eight bits of q.
+
+ The table is simply the CRC of all possible eight bit values. This is all
+ the information needed to generate CRC's on data a byte at a time for all
+ combinations of CRC register values and incoming bytes.
+
-
+
- Season of the banner
+ The crc data checksum so far.
-
+
- Type of the banner
+ Resets the CRC32 data checksum as if no update was ever called.
-
+
- Type of the season banner
+ Updates the checksum with the int bval.
+
+ the byte is taken as the lower 8 bits of value
+
-
+
- Season banner (poster format)
+ Updates the checksum with the bytes taken from the array.
+
+ buffer an array of bytes
+
-
+
- Wide season banner (banner format)
+ Adds the byte array to the data checksum.
+
+ The buffer which contains the data
+
+
+ The offset in the buffer where the data starts
+
+
+ The number of data bytes to update the CRC with.
+
-
+
- no format specified
+ Returns the CRC32 data checksum computed so far.
diff --git a/NzbDrone.Core/Libraries/TvdbLib.dll b/NzbDrone.Core/Libraries/TvdbLib.dll
index d453dceae..06cdeceee 100644
Binary files a/NzbDrone.Core/Libraries/TvdbLib.dll and b/NzbDrone.Core/Libraries/TvdbLib.dll differ
diff --git a/NzbDrone.Core/Libraries/TvdbLib.pdb b/NzbDrone.Core/Libraries/TvdbLib.pdb
index f03763a1e..2d006a5a1 100644
Binary files a/NzbDrone.Core/Libraries/TvdbLib.pdb and b/NzbDrone.Core/Libraries/TvdbLib.pdb differ
diff --git a/NzbDrone.Core/Libraries/log4net.xml b/NzbDrone.Core/Libraries/log4net.xml
deleted file mode 100644
index db9e99f9e..000000000
--- a/NzbDrone.Core/Libraries/log4net.xml
+++ /dev/null
@@ -1,28655 +0,0 @@
-
-
-
- log4net
-
-
-
-
- Appender that logs to a database.
-
-
-
- appends logging events to a table within a
- database. The appender can be configured to specify the connection
- string by setting the property.
- The connection type (provider) can be specified by setting the
- property. For more information on database connection strings for
- your specific database see http://www.connectionstrings.com/.
-
-
- Records are written into the database either using a prepared
- statement or a stored procedure. The property
- is set to (System.Data.CommandType.Text) to specify a prepared statement
- or to (System.Data.CommandType.StoredProcedure) to specify a stored
- procedure.
-
-
- The prepared statement text or the name of the stored procedure
- must be set in the property.
-
-
- The prepared statement or stored procedure can take a number
- of parameters. Parameters are added using the
- method. This adds a single to the
- ordered list of parameters. The
- type may be subclassed if required to provide database specific
- functionality. The specifies
- the parameter name, database type, size, and how the value should
- be generated using a .
-
-
-
- An example of a SQL Server table that could be logged to:
-
- CREATE TABLE [dbo].[Log] (
- [ID] [int] IDENTITY (1, 1) NOT NULL ,
- [Date] [datetime] NOT NULL ,
- [Thread] [varchar] (255) NOT NULL ,
- [Level] [varchar] (20) NOT NULL ,
- [Logger] [varchar] (255) NOT NULL ,
- [Message] [varchar] (4000) NOT NULL
- ) ON [PRIMARY]
-
-
-
- An example configuration to log to the above table:
-
-
-
-
-
-
-