TvdbLib
Huffman tree used for inflation
Literal length tree
Distance tree
Constructs a Huffman tree from the array of code lengths.
the array of code lengths
Reads the next symbol from input. The symbol is encoded using the
huffman tree.
input the input source.
the next symbol, or -1 if not enough input is available.
Logs internal messages
Logs the message at level Debug
Message to log
Logs the message at level Debug
Message to log
Exception to log
Logs the message at level info
Message to log
Logs the message at level info
Message to log
Exception to log
Logs the message at level Warn
Message to log
Logs the message at level Warn
Message to log
Exception to log
Logs the message at level Error
Message to log
Logs the message at level Error
Message to log
Exception to log
Logs the message at level Fatal
Message to log
Logs the message at level Fatal
Message to log
Exception to log
Logs the message at the given level
Message to log
Level to log
The loglevel that is currently used (default = warn)
Loglevel
Logs debug messagesLogs info messagesLogs warn messagesLogs error messagesLogs fatal messages
This class represents all fields that are available on http://thetvdb.com and
a list of episodefields. This is used for localised series information.
These are as follows:
73739|Malcolm David Kelley|Jorge Garcia|Maggie Grace|...|Thursday9:00 PMTV-142004-09-22|Action and Adventure|Drama|Science-Fiction|tt0411008enABCAfter Oceanic Air flight 815...8.96024313LostContinuinggraphical/24313-g2.jpgfanart/original/73739-1.jpg1205694666SH672362
TvdbSeriesFields constructor
Returns a short description of the episode (e.g. 1x20 Episodename)
short description of the episodeGets the episodes for the given season in the given order (aired or dvd). Absolute is also possible but makes no sense since
there are no seasons with absoulte ordering. Use GetEpisodesAbsoluteOrder() instead.For more information on episode ordering thetvdb wikiList of episodes
Returns all episodes in the absolute order
List of episodes
Update all fields of the object with the given information
the fields for the update
Should the episodes be replaced or kept
List of episodes for this translation
Is the episode info loaded
Series Id
Series Name
Series network
The language of the series
Content-Rating of the series
Zap2it Id of the series
When was the series updated the last time
Path to the primary fanart banner
Path to primary banner
Path to the primary poster
Status of the show
Tv.com id of the series
Runtime of the show
Rating of the series
Overview of the series
Imdb Id of the series
List of the series' genres
The Date the series was first aired
At which time does the series air
At which day of the week does the series air
List of actors that appear in this series
TvdbData contains a list of series, a list of languages and a list of mirror
TvdbData constructor
TvdbData constructor
List of available languages
When was the last time thetvdb has been checked
for updates
List of all available languages
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.
Tvdb Banners are the graphical element of tvdb. There are different types of banners which are
representet by sub-classes in this library. These subclasses are:
TvdbEpisodeBannerEach episode may contain a small image that should be an non-spoiler action shot from the episode (http://thetvdb.com/wiki/index.php/Episode_Images)TvdbFanartBannerFan Art is high quality artwork that is displayed in the background of HTPC menus (http://thetvdb.com/wiki/index.php/Fan_Art)TvdbSeasonBannerBanner for each season of a series, dvd-style (400 x 578) or banner style (758 x 140) (http://thetvdb.com/wiki/index.php/Wide_Season_Banners)TvdbSeriesBannerWide banner for each series (758 x 140), comes in graphical, text or blank style. For further information see http://thetvdb.com/wiki/index.php/Series_BannersTvdbPosterBannerNewest addition to the tvdb graphical section (680px x 1000px) and not smaller than 500k (http://thetvdb.com/wiki/index.php/Posters)
Loads the actual image data of the banner
true if the banner could be loaded successfully, false otherwise
Loads the actual image data of the banner
If true will replace an old image (if one exists already)
true if the banner could be loaded successfully, false otherwise
Unloads the image and saves it to cache
true if successful, false otherwise
Unloads the image
should the image kept in cache
true if successful, false otherwise
Creates the name used to store images in cache
Path of the image
Is the image a thumbnail
Name used for caching image
Loads the banner with the given image
Image object that should be used for this banner
True if successful, false otherwise
Loads the image from the given path
Path of image that should be used for this banner
True if successful, false otherwise
Used to load/save images persistent if we're using a cache provider
(should keep memory usage much lower)
on the other hand we have a back-ref to tvdb (from a data class), which sucks
todo: think of a better way to handle this
Language of the banner
Id of the banner
Image data of the banner
True if the image data has been already loaded, false otherwise
Is the banner currently beeing loaded
Path to the location on the tvdb server where the image is located
When was the banner updated the last time
Id of the series this banner belongs to
This class contains constants used for deflation.
Set to true to enable debugging
Written to Zip file to identify a stored block
Identifies static tree in Zip file
Identifies dynamic tree in Zip file
Header flag indicating a preset dictionary for deflation
Sets internal buffer sizes for Huffman encoding
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Internal compression engine constant
Fan Art is high quality artwork that is displayed in the background of
HTPC menus. Since fan art is displayed behind other content in most cases,
we place more restrictions on the formatting of the image.
The resolution is either 1920x1080 or 1280x720...
More information: http://thetvdb.com/wiki/index.php/Fan_Art
This class extends the regular banner class with the ability to retrieve thumbnails of the actual images.
These thumbnails are at the moment availabe for all banner types except actors
Load the thumb from tvdb, if there isn't already a thumb loaded,
(an existing one will NOT be replaced)
true if the loading completed sccessfully, false otherwise
Load the thumb from tvdb
if true, an existing banner will be replaced,
if false the banner will only be loaded if there is no existing banner
true if the loading completed sccessfully, false otherwise
Load thumbnail with given image
the image to be used forthe banner
true if the loading completed sccessfully, false otherwise
Unloads the image and saves it to cache
true if successful, false otherwise
Unloads the image
should the image kept in cache
true if successful, false otherwise
Is the thumbnail currently beeing loaded
Path to the fanart thumbnail
Image of the thumbnail
Is the Image of the thumb already loaded
TvdbFanartBanner constructor
TvdbFanartBanner constructor
Id of fanart banner
Language for this banner
Path of image for this banner
Load the vignette from tvdb
True if successful, false otherwise
Load the vignette from tvdb
True if successful, false otherwise
Load vignette with given image
Image object that should be used for this banner
True if successful, false otherwise
Unloads the image and saves it to cache
true if successful, false otherwise
Unloads the image
should the image kept in cache
true if successful, false otherwise
Is the vignette image already loaded
Is the vignette currently beeing loaded
Vignette Image
These are the colors selected by the artist that match the image. The format is 3 colors separated by a pipe "|". This field has leading and trailing pipes. Each color is comma separated RGB, with each color portion being an integer from 1 to 255. So the format looks like |r,g,b|r,g,b|r,g,b|. The first color is the light accent color. The second color is the dark accent color. The third color is the neutral mid-tone color.
Path to the fanart vignette
Does the image contain the series name
Color 3 (see Colors property)
Color 2 (see Colors property)
Color 1 (see Colors property)
Resolution of the fanart
A cache provider stores and loads the data that has been previously retrieved from http://thetvdb.com.
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
TvdbData object
Closes the cache (e.g. close open connection, etc.)
true if successful, false otherwise
Completely refreshes the cache (all stored information is lost)
true if the cache was cleared successfully,
false otherwise (e.g. no write rights,...)
Remove a specific series from cache
the id of the series
true if the series was removed from the cache successfully,
false otherwise (e.g. series not cached)
Loads all cached series from cache -> can take a while
The loaded TvdbData object
Loads the available languages from cache
A list of TvdbLanguage objects from cache or null
Loads all series from cache
A list of TvdbSeries objects from cache or null
Load the give series from cache
Id of the series to load
The TvdbSeries object from cache or null
Load user info from cache
Id of the user
TvdbUser object or null if the user couldn't be loaded
Saves cache settings
settings
Save the language to cache
List of languages that are available on http://thetvdb.com
Saves the series to cache
TvdbSeries object
Saves the user data to cache
TvdbUser object
Save the given image to cache
banner to save
id of series
filename (will be the same name used by LoadImageFromCache)
Loads the specified image from the cache
series id
filename of the image (same one as used by SaveToCache)
The loaded image or null if the image wasn't found
Receives a list of all series that have been cached
A list of series that have been already stored with this cache provider
Check if the series is cached in the given configuration
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
Removes the specified image from cache (if it has been cached)
id of series
name of image
true if image was removed successfully, false otherwise (e.g. image didn't exist)
Is the cache provider initialised
Class representing an episode with all the information that can be retrieved from http://thetvdb.com.
Those are:
332179 |Joseph McGinty Nichol| Chuck Versus the World 1 2007-09-24 |Julia Ling|Vik Sahay|Mieko Hillman| English Chuck Bartowski is an average computer geek... 9.0 1 |Josh Schwartz|Chris Fedak| episodes/80348-332179.jpg 1201292806 27985 80348
]]>
Additionally the banner image is stored
Default constructor for the TvdbEpisode class
Returns a short description of the episode (e.g. 1x20 Episodename)
short description of the episode
Updates all information of this episode from the given
episode...
new episode
if the episode is a special episode -> Before which season did
it air
if the episode is a special episode -> Before which episode did
it air
if the episode is a special episode -> After which season did
it air
Is the episode a special episode
The fields airsafter_season, airsbefore_episode, and airsbefore_season will only be included when the episode is listed as a special. Specials are also listed as being in season 0, so they're easy to identify and sort.
Which DVD season is this episode
The Dvd Episode Number
The DVD Disc Id
The chapter of this episode on the dvd
unique tvdb Id of this episode
Id of series this episode belongs to
Id of season this episode belong to
When was the episode last updated
Path to the banner image on http://thetvdb.com
The absolute number of the episode
List of writers for this episode
Season number of this episode
Rating for this episode
Production code for this episode
Overview of this episode
Language of this episode
Imdb number of this episode
List of guest stars that appeared in this episode
When did the episode air first
Episode number
Name of the episode
List of directors for this episode
n/a
n/a
Formatted String of writers for this episode in the
format | writer1 | writer2 | writer3 |
Formatted String of guest stars that appeared during this episode in the
format | gueststar1 | gueststar2 | gueststar3 |
Formatted String of directors of this episode in the
format | director1 | director2 | director3 |
The episode image banner
While one would think that the episode number would be a simple affair there are several different ways that someone might choose to number the episodes on this site episodes are numbered in the order they aired on TV. That being said the site does provide two alternative numbering methods.
1. Absolute Episode Order
2. DVD Release Order
More information on the topic can be found at: http://thetvdb.com/wiki/index.php/Category:Episodes
Default order used by thetvdb
As everyone knows series can air on tv in an order completely different than the one intended by the series creator. Firefly being the most often discussed example on this site. Therefore we have provided a method for entering this "Correct" order. See also http://thetvdb.com/wiki/index.php/DVD_Order
The standard for this site is the the primary episode number is representative of the shows aired order. But as any Anime fan will tell you Anime episodes are usually numbered without seasons and go from episode 1 to whatever the final episode is, often into the hundreds. Most western broadcasters however do break these shows into seasons, so in order to accommodate this alternate numbering scheme an additional field Absolute Number is available. While this system is primarily intended for Anime series that don't really have seasons, it will work for any program. To use this interface there is no alternate season number only the absolute episode number. Numbering continues on from season to season. So if season 1 ends with 25 then season 2 begins with 26. So for example Bleach is currently in it's "sixth season" but season 5 episode 14 Shock! The Father's True Character is actually episode 111.
Writes tvdb data to xml files
TvdbXmlWriter constructor
Create the file contents
List of languages to store
Write the list of languages to file
List of languages to store
Path on disk
true if the file could be stored, false otherwise
Create the file content for a list of mirrors
List of mirrors to store
xml content
Write the xml file for the mirrors to file
List of mirrors to store
Path on disk
true if the file could be stored, false otherwise
Create the file content for a list of actors
List of actors to store
xml content
Write the xml file for the actors to file
List of actors to store
Path on disk
true if the file could be stored, false otherwise
Create the series content
Series to store
xml content
Write the series content to file
Series to store
Path on disk
true if the file could be stored, false otherwise
Create the series banner content
List of banners to store
xml content
Write the series banner contents to xml file
Bannerlist to store
Path on disk
true if the file could be stored, false otherwise
Create the xml content to save a TvdbUser to file
User to store
xml content
Write the user data to file
User to store
Path on disk
true if the file could be stored, false otherwise
Class for parsing the xml info from thetvdb
Base constructor for a TvdbXmlReader class
Extract a list of languages when the data has the format:
EspaƱoles16
]]>
Extract a list of mirrors if the data has the format:
1http://thetvdb.com7
]]>
Extract a list of series in the format:
73739|Malcolm David Kelley|Jorge Garcia|Maggie Grace|...|Thursday9:00 PMTV-142004-09-22|Action and Adventure|Drama|Science-Fiction|tt0411008enABCAfter Oceanic Air flight 815...8.96024313LostContinuinggraphical/24313-g2.jpgfanart/original/73739-1.jpg1205694666SH672362
]]>
Extract all the series fields that are available on thetvdb
73739|Malcolm David Kelley|Jorge Garcia|Maggie Grace|...|Thursday9:00 PMTV-142004-09-22|Action and Adventure|Drama|Science-Fiction|tt0411008enABCAfter Oceanic Air flight 815...8.96024313LostContinuinggraphical/24313-g2.jpgfanart/original/73739-1.jpg1205694666SH672362
]]>
Extract a list of episodes from the given data when the data has the following format:
332179|Joseph McGinty Nichol|Chuck Versus the World12007-09-24|Julia Ling|Vik Sahay|Mieko Hillman|EnglishChuck Bartowski is an average computer geek...9.01|Josh Schwartz|Chris Fedak|episodes/80348-332179.jpg12012928062798580348
]]>
Extract list of updated series
71969
]]>
Extract the results of a series search with format:
73739enLostgraphical/24313-g2.jpgAfter Oceanic Air flight 815...2004-09-22tt0411008SH67236273739
]]>
Exctract the series favorites
730677895775340722187324475397
]]>
Extract a rating from the data in the format
7.5
]]>
Extract the updated episodes from the data in the format:
326268
]]>
Extract the data of updated banners
179302standardenseasons/79302-1.jpgseason
]]>
Extract the update time from data
Extract a list of banners from the data when the data has the format:
20106fanart/original/73739-1.jpgfanart/vignette/73739-1.jpg_cache/fanart/original/73739-1.jpgfanart1920x1080|68,69,59|69,70,58|78,78,68|en18953seasons/73739-2-2.jpgseasonseasones29529graphical/73739-g.jpgseriesgraphicalen
]]>
Extract a list of actors when the data has the format:
22017actors/22017.jpgZachary LeviChuck Bartowski0
]]>
data
List of actors
Extract user data from
Extract a list of series ratings
The xml file is in the following format:
8034478.32247222788.3224
]]>
The xml content
The item type for the ratings
Contains the output from the Inflation process.
We need to have a window so that we can refer backwards into the output stream
to repeat stuff.
Author of the original java version : John Leuner
Write a byte to this output window
value to write
if window is full
Append a byte pattern already in the window itself
length of pattern to copy
distance from end of window pattern occurs
If the repeated data overflows the window
Copy from input manipulator to internal window
source of data
length of data to copy
the number of bytes copied
Copy dictionary to window
source dictionary
offset of start in source dictionary
length of dictionary
If window isnt empty
Get remaining unfilled space in window
Number of bytes left in window
Get bytes available for output in window
Number of bytes filled
Copy contents of window to output
buffer to copy to
offset to start at
number of bytes to count
The number of bytes copied
If a window underflow occurs
Reset by clearing window so GetAvailable returns 0
This is the Deflater class. The deflater class compresses input
with the deflate algorithm described in RFC 1951. It has several
compression levels and three different strategies described below.
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
The best and slowest compression level. This tries to find very
long and distant string repetitions.
The worst but fastest compression level.
The default compression level.
This level won't compress at all but output uncompressed blocks.
The compression method. This is the only method supported so far.
There is no need to use this constant at all.
Creates a new deflater with default compression level.
Creates a new deflater with given compression level.
the compression level, a value between NO_COMPRESSION
and BEST_COMPRESSION, or DEFAULT_COMPRESSION.
if lvl is out of range.
Creates a new deflater with given compression level.
the compression level, a value between NO_COMPRESSION
and BEST_COMPRESSION.
true, if we should suppress the Zlib/RFC1950 header at the
beginning and the adler checksum at the end of the output. This is
useful for the GZIP/PKZIP formats.
if lvl is out of range.
Resets the deflater. The deflater acts afterwards as if it was
just created with the same compression level and strategy as it
had before.
Flushes the current input block. Further calls to deflate() will
produce enough output to inflate everything in the current input
block. This is not part of Sun's JDK so I have made it package
private. It is used by DeflaterOutputStream to implement
flush().
Finishes the deflater with the current input block. It is an error
to give more input after this method was called. This method must
be called to force all bytes to be flushed.
Sets the data which should be compressed next. This should be only
called when needsInput indicates that more input is needed.
If you call setInput when needsInput() returns false, the
previous input that is still pending will be thrown away.
The given byte array should not be changed, before needsInput() returns
true again.
This call is equivalent to setInput(input, 0, input.length).
the buffer containing the input data.
if the buffer was finished() or ended().
Sets the data which should be compressed next. This should be
only called when needsInput indicates that more input is needed.
The given byte array should not be changed, before needsInput() returns
true again.
the buffer containing the input data.
the start of the data.
the number of data bytes of input.
if the buffer was Finish()ed or if previous input is still pending.
Sets the compression level. There is no guarantee of the exact
position of the change, but if you call this when needsInput is
true the change of compression level will occur somewhere near
before the end of the so far given input.
the new compression level.
Get current compression level
Returns the current compression level
Sets the compression strategy. Strategy is one of
DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact
position where the strategy is changed, the same as for
SetLevel() applies.
The new compression strategy.
Deflates the current input block with to the given array.
The buffer where compressed data is stored
The number of compressed bytes added to the output, or 0 if either
IsNeedingInput() or IsFinished returns true or length is zero.
Deflates the current input block to the given array.
Buffer to store the compressed data.
Offset into the output array.
The maximum number of bytes that may be stored.
The number of compressed bytes added to the output, or 0 if either
needsInput() or finished() returns true or length is zero.
If Finish() was previously called.
If offset or length don't match the array length.
Sets the dictionary which should be used in the deflate process.
This call is equivalent to setDictionary(dict, 0, dict.Length).
the dictionary.
if SetInput () or Deflate () were already called or another dictionary was already set.
Sets the dictionary which should be used in the deflate process.
The dictionary is a byte array containing strings that are
likely to occur in the data which should be compressed. The
dictionary is not stored in the compressed output, only a
checksum. To decompress the output you need to supply the same
dictionary again.
The dictionary data
The index where dictionary information commences.
The number of bytes in the dictionary.
If SetInput () or Deflate() were already called or another dictionary was already set.
Compression level.
If true no Zlib/RFC1950 headers or footers are generated
The current state.
The total bytes of output written.
The pending output.
The deflater engine.
Gets the current adler checksum of the data that was processed so far.
Gets the number of input bytes processed so far.
Gets the number of output bytes so far.
Returns true if the stream was finished and no more output bytes
are available.
Returns true, if the input buffer is empty.
You should then call setInput().
NOTE: This method can also return true when the stream
was finished.
Graphical representation of a series, tpyes are text, graphical or blank
- Graphical Banners are defined as having a graphical/logo version of the series name
- Text Banners generally use Arial Bold font, 27pt as the text
- The main requirement for blank banners is they should be blank on the left side of the banner as
that is where the auto-generated text will be placed
More information on http://thetvdb.com/wiki/index.php/Series_Banners
TvdbSeriesBanner constructor
TvdbSeriesBanner constructor
Id of banner
Path of banner image
Language of this banner
Banner type (text, graphical, blank, none)
Banner type of the series banner
Type of the series banner
Banners contains a text of the seriesname
Banner containing a graphical representation of the seriesname
Banner containing a free space on the left side to place your own series description
Nothing specified
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;
}
}
}
}
}
}
}
This filter stream is used to decompress data compressed using the "deflate"
format. The "deflate" format is described in RFC 1951.
This stream may form the basis for other decompression filters, such
as the GZipInputStream.
Author of the original java version : John Leuner.
Create an InflaterInputStream with the default decompressor
and a default buffer size of 4KB.
The InputStream to read bytes from
Create an InflaterInputStream with the specified decompressor
and a default buffer size of 4KB.
The source of input data
The decompressor used to decompress data read from baseInputStream
Create an InflaterInputStream with the specified decompressor
and the specified buffer size.
The InputStream to read bytes from
The decompressor to use
Size of the buffer to use
Skip specified number of bytes of uncompressed data
Number of bytes to skip
The number of bytes skipped, zero if the end of
stream has been reached
The number of bytes to skip is less than or equal to zero.
Clear any cryptographic state.
Fills the buffer with more data to decompress.
Stream ends early
Flushes the baseInputStream
Sets the position within the current stream
Always throws a NotSupportedException
The relative offset to seek to.
The defining where to seek from.
The new position in the stream.Any access
Set the length of the current stream
Always throws a NotSupportedException
The new length value for the stream.
Any access
Writes a sequence of bytes to stream and advances the current position
This method always throws a NotSupportedException
Thew buffer containing data to write.
The offset of the first byte to write.
The number of bytes to write.
Any access
Writes one byte to the current stream and advances the current position
Always throws a NotSupportedException
The byte to write.
Any access
Entry point to begin an asynchronous write. Always throws a NotSupportedException.
The buffer to write data from
Offset of first byte to write
The maximum number of bytes to write
The method to be called when the asynchronous write operation is completed
A user-provided object that distinguishes this particular asynchronous write request from other requests
An IAsyncResult that references the asynchronous writeAny access
Closes the input stream. When
is true the underlying stream is also closed.
Reads decompressed data into the provided buffer byte array
The array to read and decompress data into
The offset indicating where the data should be placed
The number of bytes to decompress
The number of bytes read. Zero signals the end of stream
Inflater needs a dictionary
Decompressor for this stream
Input buffer for this stream.
Base stream the inflater reads from.
The compressed size
Flag indicating wether this instance has been closed or not.
Flag indicating wether this instance is designated the stream owner.
When closing if this flag is true the underlying stream is closed.
Get/set flag indicating ownership of underlying stream.
When the flag is true will close the underlying stream also.
The default value is true.
Returns 0 once the end of the stream (EOF) has been reached.
Otherwise returns 1.
Gets a value indicating whether the current stream supports reading
Gets a value of false indicating seeking is not supported for this stream.
Gets a value of false indicating that this stream is not writeable.
A value representing the length of the stream in bytes.
The current position within the stream.
Throws a NotSupportedException when attempting to set the position
Attempting to set the position
The current reader this instance.
Creates a new Zip input stream, for reading a zip archive.
The underlying providing data.
Advances to the next entry in the archive
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.
Complete cleanup as the final part of closing.
True if the crc value should be tested
Closes the current zip entry and moves to the next one.
The stream is closed
The Zip stream ends early
Reads a byte from the current zip entry.
The byte or -1 if end of stream is reached.
Handle attempts to read by throwing an .
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
Perform the initial read on an entry which may include
reading encryption headers and setting up inflation.
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.
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.
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.
Closes the zip input stream
Optional password used for encryption when non-null
A password for all encrypted entries in this
Gets a value indicating if there is a current entry and it can be decompressed
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.
Returns 1 if there is an entry available
Otherwise returns 0.
Returns the current size that can be read from the current entry if available
Thrown if the entry size is not known.Thrown if no entry is currently available.
Delegate for reading bytes from a stream.
An input buffer customised for use by
The buffer supports decryption of incoming data.
Initialise a new instance of with a default buffer size
The stream to buffer.
Initialise a new instance of
The stream to buffer.
The size to use for the buffer
A minimum buffer size of 1KB is permitted. Lower sizes are treated as 1KB.
Call passing the current clear text buffer contents.
The inflater to set input for.
Fill the buffer from the underlying input stream.
Read a buffer directly from the input stream
The buffer to fill
Returns the number of bytes read.
Read a buffer directly from the input stream
The buffer to read into
The offset to start reading data into.
The number of bytes to read.
Returns the number of bytes read.
Read clear text data from the input stream.
The buffer to add data to.
The offset to start adding data at.
The number of bytes to read.
Returns the number of bytes actually read.
Read a from the input stream.
Returns the byte read.
Read an in little endian byte order.
The short value read case to an int.
Read an in little endian byte order.
The int value read.
Read a in little endian byte order.
The long value read.
Get the length of bytes bytes in the
Get the contents of the raw data buffer.
This may contain encrypted data.
Get the number of useable bytes in
Get the contents of the clear text buffer.
Get/set the number of bytes available
Get/set the to apply to any data.
Set this value to null to have no transform applied.
Inflater is used to decompress data that has been compressed according
to the "deflate" standard described in rfc1951.
By default Zlib (rfc1950) headers and footers are expected in the input.
You can use constructor public Inflater(bool noHeader) passing true
if there is no Zlib header information
The usage is as following. First you have to set some input with
SetInput(), then Inflate() it. If inflate doesn't
inflate any bytes there may be three reasons:
IsNeedingInput() returns true because the input buffer is empty.
You have to provide more input with SetInput().
NOTE: IsNeedingInput() also returns true when, the stream is finished.
IsNeedingDictionary() returns true, you have to provide a preset
dictionary with SetDictionary().
IsFinished returns true, the inflater has finished.
Once the first output byte is produced, a dictionary will not be
needed at a later stage.
author of the original java version : John Leuner, Jochen Hoenicke
These are the possible states for an inflater
Copy lengths for literal codes 257..285
Extra bits for literal codes 257..285
Copy offsets for distance codes 0..29
Extra bits for distance codes
This variable contains the current state.
The adler checksum of the dictionary or of the decompressed
stream, as it is written in the header resp. footer of the
compressed stream.
Only valid if mode is DECODE_DICT or DECODE_CHKSUM.
The number of bits needed to complete the current state. This
is valid, if mode is DECODE_DICT, DECODE_CHKSUM,
DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS.
True, if the last block flag was set in the last block of the
inflated stream. This means that the stream ends after the
current block.
The total number of inflated bytes.
The total number of bytes set with setInput(). This is not the
value returned by the TotalIn property, since this also includes the
unprocessed input.
This variable stores the noHeader flag that was given to the constructor.
True means, that the inflated stream doesn't contain a Zlib header or
footer.
Creates a new inflater or RFC1951 decompressor
RFC1950/Zlib headers and footers will be expected in the input data
Creates a new inflater.
True if no RFC1950/Zlib header and footer fields are expected in the input data
This is used for GZIPed/Zipped input.
For compatibility with
Sun JDK you should provide one byte of input more than needed in
this case.
Resets the inflater so that a new stream can be decompressed. All
pending input and output will be discarded.
Decodes a zlib/RFC1950 header.
False if more input is needed.
The header is invalid.
Decodes the dictionary checksum after the deflate header.
False if more input is needed.
Decodes the huffman encoded symbols in the input stream.
false if more input is needed, true if output window is
full or the current block ends.
if deflated stream is invalid.
Decodes the adler checksum after the deflate stream.
false if more input is needed.
If checksum doesn't match.
Decodes the deflated stream.
false if more input is needed, or if finished.
if deflated stream is invalid.
Sets the preset dictionary. This should only be called, if
needsDictionary() returns true and it should set the same
dictionary, that was used for deflating. The getAdler()
function returns the checksum of the dictionary needed.
The dictionary.
Sets the preset dictionary. This should only be called, if
needsDictionary() returns true and it should set the same
dictionary, that was used for deflating. The getAdler()
function returns the checksum of the dictionary needed.
The dictionary.
The index into buffer where the dictionary starts.
The number of bytes in the dictionary.
No dictionary is needed.
The adler checksum for the buffer is invalid
Sets the input. This should only be called, if needsInput()
returns true.
the input.
Sets the input. This should only be called, if needsInput()
returns true.
The source of input data
The index into buffer where the input starts.
The number of bytes of input to use.
No input is needed.
The index and/or count are wrong.
Inflates the compressed stream to the output buffer. If this
returns 0, you should check, whether IsNeedingDictionary(),
IsNeedingInput() or IsFinished() returns true, to determine why no
further output is produced.
the output buffer.
The number of bytes written to the buffer, 0 if no further
output can be produced.
if buffer has length 0.
if deflated stream is invalid.
Inflates the compressed stream to the output buffer. If this
returns 0, you should check, whether needsDictionary(),
needsInput() or finished() returns true, to determine why no
further output is produced.
the output buffer.
the offset in buffer where storing starts.
the maximum number of bytes to output.
the number of bytes written to the buffer, 0 if no further output can be produced.
if count is less than 0.
if the index and / or count are wrong.
if deflated stream is invalid.
Returns true, if the input buffer is empty.
You should then call setInput().
NOTE: This method also returns true when the stream is finished.
Returns true, if a preset dictionary is needed to inflate the input.
Returns true, if the inflater has finished. This means, that no
input is needed and no output can be produced.
Gets the adler checksum. This is either the checksum of all
uncompressed bytes returned by inflate(), or if needsDictionary()
returns true (and thus no output was yet produced) this is the
adler checksum of the expected dictionary.
the adler checksum.
Gets the total number of output bytes returned by Inflate().
the total number of output bytes.
Gets the total number of processed compressed input bytes.
The total number of bytes of processed input bytes.
Gets the number of unprocessed input bytes. Useful, if the end of the
stream is reached and you want to further process the bytes after
the deflate stream.
The number of bytes of the input which have not been processed.
Interface to compute a data checksum used by checked input/output streams.
A data checksum can be updated by one byte or with a byte array. After each
update the value of the current checksum can be returned by calling
getValue. The complete checksum object can also be reset
so it can be used again with new data.
Resets the data checksum as if no update was ever called.
Adds one byte to the data checksum.
the data value to add. The high byte of the int is ignored.
Updates the data checksum with the bytes taken from the array.
buffer an array of bytes
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 add.
Returns the data checksum computed so far.
TvdbDownloader allows simple downloading of all informations stored
on http://thetvdb.com. Unlike the class Tvdb TvdbDownloader doesn't
include any logic like caching.
TvdbDownloader constructor
The api key used for downloading data from thetvdb -> see http://thetvdb.com/wiki/index.php/Programmers_API
Download the episodes for the given series
the id of the series
the language in which the episodes should be downloaded
An episode object or null if no episodes could be foundException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidThe tvdb database is unavailableDownload all available banners (only a list of available banners, not the actual images!)for the specified series.You can load the actual images by calling LoadBanner() (or LoadThumb(), LoadVignette()) on the banner object
Id of series
List of all banners for the given seriesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidThe tvdb database is unavailableDownload series from tvdb (specified by series id and language)
id of series
language of series
load episodes
load actors
load banners
The series object or null if the series couldn't be foundException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidThe tvdb database is unavailable
Download the series in the given language
id of series
language of series
Exception is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidThe tvdb database is unavailablethe series object
Download a series search for the id of an external site
The site that provides the external id
The id that identifies the series on the external site
Exception is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidThe tvdb database is unavailablethe series object that corresponds to the given site and id
Download the given episode from tvdb
Id of episode
Language in which the episode should be downloaded
The episode objectException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The episode/series/banner couldn't be located on the tvdb server.Exception is thrown when thetvdb isn't available.Download the episode (specified by series id, season number, episode number, language and episode order) from http://thetvdb.com.It is possible to retrieve episodes by aired order (aka default order), DVD order and absolute order. For a detailled description of these
options see: http://thetvdb.com/wiki/index.php/Category:Episodes
series id
season nr
episode nr
language
order
The episode object or null if the episode could't be foundException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The episode/series/banner couldn't be located on the tvdb server.Exception is thrown when thetvdb isn't available.
Download the episode specified from http://thetvdb.com
series id
when did the episode air
language
EpisodeException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The episode/series/banner couldn't be located on the tvdb server.Exception is thrown when thetvdb isn't available.
Download the preferred language of the user.
Id of user
The preferred language for this user as set on http://thetvdb.comException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existThe tvdb database is unavailable
Download the user favorite list
Id of user (register at http://thetvdb.com to get a user id)
Favorite list for specified userException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existThe tvdb database is unavailable
Download the user favorite list
Id of user
Type of action
id of series
List of user favoritesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existThe tvdb database is unavailable
Download an Update
updated series to return
updated episodes to return
updated banners to return
interval to download (0=day, 1=week, 2=month)
use zip
Time of the updateException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidException is thrown when thetvdb isn't available.
Download an Update
updated series to return
updated episodes to return
updated banners to return
interval to download
use zip
Time of the updateException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidException is thrown when thetvdb isn't available.
Download list available languages.
A list of TvdbLanguage objectsException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The episode/series/banner couldn't be located on the tvdb server.Exception is thrown when thetvdb isn't available.
Download search results for a series search in the default language (english)
name of the series
List of possible matches for the searchException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidException is thrown when thetvdb isn't available.
Download search results for a series search
name of the series
language of the search
List of possible matches for the searchException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidException is thrown when thetvdb isn't available.
Make the request for rating a series
The id of the user
The id of the series
The rating for this series
A double value with the current rating for this seriesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existException is thrown when thetvdb isn't available.
Make the request for rating an episode
The id of the user
The id of the episode
The rating for this series
A double value with the current rating for this seriesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existException is thrown when thetvdb isn't available.
Download the series rating without rating the item.
id of user
id of series
Current rating for the seriesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existException is thrown when thetvdb isn't available.
Download the episode rating without rating
id of the user
id of the episode
Current rating of this episodeException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existException is thrown when thetvdb isn't available.
Download the list of actors
Id of series
List of actors for the given series
Gets all series this user has already ratet
All series ratings the user has made so farException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existException is thrown when thetvdb isn't available.
Download the user rating for the given series (episodes and series itself)
Id of user
Id of series
Dictionary of all ratingsException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existException is thrown when thetvdb isn't available.
A function has been called that needs an initialised cache but the InitCache function
hasn't been called yet
Base excpetion for tvdblib
TvdbException constructor
Message
TvdbException constructor
Message
Inner Exception
TvdbException constructor
TvdbCacheNotInitialisedException constructor
Message
TvdbCacheNotInitialisedException constructor
Binary cache provider saves all the cached info into
broken at the moment -> use CacheProvider
BinaryCacheProvider constructor
The root folder where the cached data should be stored
Load the cached data
TvdbData object
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
Tvdb Data object
Closes the cache (e.g. close open connection, etc.)
true if successful, false otherwise
Saves cache settings
settings
Saves the time of the last update to cache
time of last update
Save the language to cache
List of languages
Save the mirror info to cache
list of mirrors
Loads the available languages from cache
List of available languages
Load the available mirrors from cache
List of available mirrors
Load the give series from cache
id of series to load
loaded series, or null if not successful
Saves the series to cache
Tvdb series
Saves the user data to cache
TvdbUser
Loads all series from cache
List that contains all series object that had been previously cached
Load the userinfo from the cache
Id of user
TvdbUser object
Receives a list of all series that have been cached
Ids of series that are already cached
Check if the series is cached in the given configuration
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
Completely refreshes the cached (all stored information is lost).
true if the cache was cleared successfully,
false otherwise (e.g. no write rights,...)
Remove a specific series from cache
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
banner to save
id of series
filename (will be the same name used by LoadImageFromCache)
Loads the specified image from the cache
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)
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
DateTime of lsat update
Is the cache provider initialised
Class to store what parts of the cached series has been loaded
constructor
Id of series
Are episodes loaded
Are banners loaded
Are actors loaded
Are actors loaded
Are banners loaded
Are episodes loaded
Id of series
Bzip2 checksum algorithm
Initialise a default instance of
Reset the state of Crc.
Update the Crc value.
data update is based on
Update Crc based on a block of data
The buffer containing data to update the crc with.
Update Crc based on a portion of a block of data
block of data
index of first byte to use
number of bytes to use
Get the current Crc value.
Newest addition to the graphical section. Like the name says it has poster
format (680px x 1000px) and is not smaller than 500 kb
More information at http://thetvdb.com/wiki/index.php/Posters
TvdbPosterBanner constructor
Id of fanart banner
Language for this banner
Path of image for this banner
TvdbPosterBanner constructor
Resolution of the Poster banner
Represents the episode banner, which is currently only one image
per episode (no language differentiation either) limited to a maximum
size of 400 x 300
further information on http://thetvdb.com/wiki/index.php/Episode_Images
TvdbEpisodeBanner constructor
TvdbEpisodeBanner constructor
Path of banner
Id of episode banner
Represents an tvdb actor -> for more information see http://thetvdb.com/wiki/index.php/API:actors.xml
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.
The name of the actor's character in the series. This may include multiple roles in comma-separated format.
The actual name of the actor.
The image for the actor in this role.
A unique id per actor. At some point actors will be globally unique but for now they're just unique per series.
Exception that is thrown if http://thetvdb.com seems to be unavailable
TvdbNotAvailableException constructor
Message
TvdbNotAvailableException constructor
Defines known values for the property.
Host system = MSDOS
Host system = Amiga
Host system = Open VMS
Host system = Unix
Host system = VMCms
Host system = Atari ST
Host system = OS2
Host system = Macintosh
Host system = ZSystem
Host system = Cpm
Host system = Windows NT
Host system = MVS
Host system = VSE
Host system = Acorn RISC
Host system = VFAT
Host system = Alternate MVS
Host system = BEOS
Host system = Tandem
Host system = OS400
Host system = OSX
Host system = WinZIP AES
This class represents an entry in a zip archive. This can be a file
or a directory
ZipFile and ZipInputStream will give you instances of this class as
information about the members in an archive. ZipOutputStream
uses an instance of this class when creating an entry in a Zip file.
Author of the original java version : Jochen Hoenicke
Creates a zip entry with the given name.
The name for this entry. Can include directory components.
The convention for names is 'unix' style paths with relative names only.
There are with no device names and path elements are separated by '/' characters.
The name passed is null
Creates a zip entry with the given name and version required to extract
The name for this entry. Can include directory components.
The convention for names is 'unix' style paths with no device names and
path elements separated by '/' characters. This is not enforced see CleanName
on how to ensure names are valid if this is desired.
The minimum 'feature version' required this entry
The name passed is null
Initializes an entry with the given name and made by information
Name for this entry
Version and HostSystem Information
Minimum required zip feature version required to extract this entry
Compression method for this entry.
The name passed is null
versionRequiredToExtract should be 0 (auto-calculate) or > 10
This constructor is used by the ZipFile class when reading from the central header
It is not generally useful, use the constructor specifying the name only.
Creates a deep copy of the given zip entry.
The entry to copy.
Test the external attributes for this to
see if the external attributes are Dos based (including WINNT and variants)
and match the values
The attributes to test.
Returns true if the external attributes are known to be DOS/Windows
based and have the same attributes set as the value passed.
Force this entry to be recorded using Zip64 extensions.
Get a value indicating wether Zip64 extensions were forced.
A value of true if Zip64 extensions have been forced on; false if not.
Process extra data fields updating the entry based on the contents.
True if the extra data fields should be handled
for a local header, rather than for a central header.
Test entry to see if data can be extracted.
Returns true if data can be extracted for this entry; false otherwise.
Creates a copy of this zip entry.
An that is a copy of the current instance.
Gets a string representation of this ZipEntry.
A readable textual representation of this
Test a compression method to see if this library
supports extracting data compressed with that method
The compression method to test.
Returns true if the compression method is supported; false otherwise
Cleans a name making it conform to Zip file conventions.
Devices names ('c:\') and UNC share names ('\\server\share') are removed
and forward slashes ('\') are converted to back slashes ('/').
Names are made relative by trimming leading slashes which is compatible
with the ZIP naming convention.
The name to clean
The 'cleaned' name.
The Zip name transform class is more flexible.
Get a value indicating wether the entry has a CRC value available.
Get/Set flag indicating if entry is encrypted.
A simple helper routine to aid interpretation of flagsThis is an assistant that interprets the flags property.
Get / set a flag indicating wether entry name and comment text are
encoded in unicode UTF8.
This is an assistant that interprets the flags property.
Value used during password checking for PKZIP 2.0 / 'classic' encryption.
Get/Set general purpose bit flag for entry
General purpose bit flag
Bit 0: If set, indicates the file is encrypted
Bit 1-2 Only used for compression type 6 Imploding, and 8, 9 deflating
Imploding:
Bit 1 if set indicates an 8K sliding dictionary was used. If clear a 4k dictionary was used
Bit 2 if set indicates 3 Shannon-Fanno trees were used to encode the sliding dictionary, 2 otherwise
Deflating:
Bit 2 Bit 1
0 0 Normal compression was used
0 1 Maximum compression was used
1 0 Fast compression was used
1 1 Super fast compression was used
Bit 3: If set, the fields crc-32, compressed size
and uncompressed size are were not able to be written during zip file creation
The correct values are held in a data descriptor immediately following the compressed data.
Bit 4: Reserved for use by PKZIP for enhanced deflating
Bit 5: If set indicates the file contains compressed patch data
Bit 6: If set indicates strong encryption was used.
Bit 7-10: Unused or reserved
Bit 11: If set the name and comments for this entry are in unicode.
Bit 12-15: Unused or reserved
Get/Set index of this entry in Zip file
This is only valid when the entry is part of a
Get/set offset for use in central header
Get/Set external file attributes as an integer.
The values of this are operating system dependant see
HostSystem for details
Get the version made by for this entry or zero if unknown.
The value / 10 indicates the major version number, and
the value mod 10 is the minor version number
Get a value indicating this entry is for a DOS/Windows system.
Gets the compatability information for the external file attribute
If the external file attributes are compatible with MS-DOS and can be read
by PKZIP for DOS version 2.04g then this value will be zero. Otherwise the value
will be non-zero and identify the host system on which the attributes are compatible.
The values for this as defined in the Zip File format and by others are shown below. The values are somewhat
misleading in some cases as they are not all used as shown. You should consult the relevant documentation
to obtain up to date and correct information. The modified appnote by the infozip group is
particularly helpful as it documents a lot of peculiarities. The document is however a little dated.
0 - MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems)1 - Amiga2 - OpenVMS3 - Unix4 - VM/CMS5 - Atari ST6 - OS/2 HPFS7 - Macintosh8 - Z-System9 - CP/M10 - Windows NTFS11 - MVS (OS/390 - Z/OS)12 - VSE13 - Acorn Risc14 - VFAT15 - Alternate MVS16 - BeOS17 - Tandem18 - OS/40019 - OS/X (Darwin)99 - WinZip AESremainder - unused
Get minimum Zip feature version required to extract this entry
Minimum features are defined as:
1.0 - Default value
1.1 - File is a volume label
2.0 - File is a folder/directory
2.0 - File is compressed using Deflate compression
2.0 - File is encrypted using traditional encryption
2.1 - File is compressed using Deflate64
2.5 - File is compressed using PKWARE DCL Implode
2.7 - File is a patch data set
4.5 - File uses Zip64 format extensions
4.6 - File is compressed using BZIP2 compression
5.0 - File is encrypted using DES
5.0 - File is encrypted using 3DES
5.0 - File is encrypted using original RC2 encryption
5.0 - File is encrypted using RC4 encryption
5.1 - File is encrypted using AES encryption
5.1 - File is encrypted using corrected RC2 encryption
5.1 - File is encrypted using corrected RC2-64 encryption
6.1 - File is encrypted using non-OAEP key wrapping
6.2 - Central directory encryption (not confirmed yet)
6.3 - File is compressed using LZMA
6.3 - File is compressed using PPMD+
6.3 - File is encrypted using Blowfish
6.3 - File is encrypted using Twofish
Get a value indicating wether this entry can be decompressed by the library.
This is based on the and
wether the compression method is supported.
Gets a value indicating if the entry requires Zip64 extensions
to store the full entry values.
A value of true if a local header requires Zip64 extensions; false if not.
Get a value indicating wether the central directory entry requires Zip64 extensions to be stored.
Get/Set DosTime value.
The MS-DOS date format can only represent dates between 1/1/1980 and 12/31/2107.
Gets/Sets the time of last modification of the entry.
The property is updated to match this as far as possible.
Returns the entry name.
The unix naming convention is followed.
Path components in the entry should always separated by forward slashes ('/').
Dos device names like C: should also be removed.
See the class, or
Gets/Sets the size of the uncompressed data.
The size or -1 if unknown.
Setting the size before adding an entry to an archive can help
avoid compatability problems with some archivers which dont understand Zip64 extensions.
Gets/Sets the size of the compressed data.
The compressed entry size or -1 if unknown.
Gets/Sets the crc of the uncompressed data.
Crc is not in the range 0..0xffffffffL
The crc value or -1 if unknown.
Gets/Sets the compression method. Only Deflated and Stored are supported.
The compression method for this entry
Gets/Sets the extra data.
Extra data is longer than 64KB (0xffff) bytes.
Extra data or null if not set.
Gets/Sets the entry comment.
If comment is longer than 0xffff.
The comment or null if not set.
A comment is only available for entries when read via the ZipFile class.
The class doesnt have the comment data available.
Gets a value indicating if the entry is a directory.
however.
A directory is determined by an entry name with a trailing slash '/'.
The external file attributes can also indicate an entry is for a directory.
Currently only dos/windows attributes are tested in this manner.
The trailing slash convention should always be followed.
Get a value of true if the entry appears to be a file; false otherwise
This only takes account of DOS/Windows attributes. Other operating systems are ignored.
For linux and others the result may be incorrect.
Tvdb Handler for handling all features that are available on http://thetvdb.com/
http://thetvdb.com/ is an open database that can be modified by anybody. All content and images on the site have been contributed by our users. The database schema and website are open source under the GPL, and are available at Sourceforge.
The site also has a full XML API that allows other software and websites to use this information. The API is currently being used by the myTV add-in for Windows Media Center, XBMC (formerly XBox Media Center); the meeTVshows and TVNight plugins for Meedio; the MP-TVSeries plugin for MediaPortal; Boxee; and many more.
Creates a new Tvdb handlerThe tvdb handler is used not only for downloading data from thetvdb but also to cache the downloaded data to a persistent storage,
handle user specific tasks and keep the downloaded data consistent with the online data (via the updates api)
The api key used for downloading data from thetvdb -> see http://thetvdb.com/wiki/index.php/Programmers_API
Creates a new Tvdb handler
The cache provider used to store the information
Api key to use for this project
Load previously stored information on (except series information) from cache
true if cache could be loaded successfully, false otherwise
Completely refreshes the cache (all stored information is lost) -> cache
must be initialised to call this method
true if the cache was cleared successfully,
false otherwise (e.g. no write rights,...)
Search for a seris on tvdb using the name of the series using the default language (english)
Name of series
List of possible hits (containing only very basic information (id, name,....)
Search for a seris on tvdb using the name of the series
Name of series
Language to search in
List of possible hits (containing only very basic information (id, name,....)
Searches for a series by the id of an external provider
external provider
id of the series
The tvdb series that corresponds to the external id
Gets the series with the given id either from cache (if it has already been loaded) or from
the selected tvdb mirror.
To check if this series has already been cached, use the Method IsCached(TvdbSeries _series)
Tvdb is not availableThe given api key is not valid
id of series
language that should be retrieved
if true, the full series record will be loaded (series + all episodes), otherwise only the base record will be loaded which contains only series information
if true also loads the extended actor information
if true also loads the paths to the banners
Instance of TvdbSeries containing all gained information
Gets the series with the given id either from cache (if it has already been loaded) or from
the selected tvdb mirror. If this series is not already cached and the series has to be
downloaded, the zipped version will be downloaded
To check if this series has already been cached, use the Method IsCached(TvdbSeries _series)
Tvdb is not availableThe given api key is not valid
id of series
language that should be retrieved
Instance of TvdbSeries containing all gained information
Gets the series with the given id either from cache (if it has already been loaded) or from
the selected tvdb mirror. If you use zip the request automatically downloads the episodes, the actors and the banners, so you should also select those features.
To check if this series has already been cached, use the Method IsCached(TvdbSeries _series)
Tvdb is not availableThe given api key is not valid
id of series
language abbriviation of the series that should be retrieved
if true, the full series record will be loaded (series + all episodes), otherwise only the base record will be loaded which contains only series information
if true also loads the paths to the banners
if true also loads the extended actor information
If this series is not already cached and the series has to be downloaded, the zipped version will be downloaded
Instance of TvdbSeries containing all gained informationException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidThe tvdb database is unavailable
Gets the full series (including episode information and actors) with the given id either from cache
(if it has already been loaded) or from the selected tvdb mirror.
To check if this series has already been cached, pleas use the Method IsCached(TvdbSeries _series)
Tvdb is not availableThe given api key is not valid
id of series
language that should be retrieved
if true also loads the paths to the banners
Instance of TvdbSeries containing all gained informationException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidThe tvdb database is unavailable
Gets the basic series (without episode information and actors) with the given id either from cache
(if it has already been loaded) or from the selected tvdb mirror.
To check if this series has already been cached, please use the Method IsCached(TvdbSeries _series)
Tvdb is not availableThe given api key is not valid
id of series
language that should be retrieved
if true also loads the paths to the banners
Instance of TvdbSeries containing all gained informationException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidThe tvdb database is unavailable
Returns if the series is locally cached
Id of the series
Language
Load Episodes
Load Actors
Load Banners
True if the series is cached in the given configuration
Retrieve the episode with the given id in the given language.
Note that the episode is always downloaded from thetvdb since it would
be practical to load each and every cached series to look for the
episode id
id of the episode
languageof the episode
The retrieved episodeException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The episode/series/banner couldn't be located on the tvdb server.Exception is thrown when thetvdb isn't available.
Retrieve the episode with the given parameters. This function will find
episodes that are already cached.
id of the series
season number of the episode
number of the episode
language of the episode
The sorting order that should be user when downloading the episode
The retrieved episodeException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The episode/series/banner couldn't be located on the tvdb server.Exception is thrown when thetvdb isn't available.
Retrieve the episode with the given parameters.
id of the series
When did the episode air
language of the episode
The given api key is not validThe retrieved episodeException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The episode/series/banner couldn't be located on the tvdb server.Exception is thrown when thetvdb isn't available.
Get the series from cache
Id of series
Update all the series (not using zip) with the updated information
true if the update was successful, false otherwise
Update all the series with the updated information
download zipped file?
In order to update, the cache has to be initialisedtrue if the update was successful, false otherwiseException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidException is thrown when thetvdb isn't available.
Update all the series with the updated information
download zipped file?
Specifies the interval of the update (day, week, month)
true if the update was successful, false otherwiseException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidException is thrown when thetvdb isn't available.In order to update, the cache has to be initialised
Update all the series with the updated information
download zipped file?
Specifies the interval of the update (day, week, month)
If yes, will reload all series that haven't been updated longer than the update period (which means
that only a reload can guarantee that the data is up to date. Should only be used when the data hasn't
been updated for over a month (otherwise use monthly updates)
true if the update was successful, false otherwiseException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The stored api key is invalidException is thrown when thetvdb isn't available.In order to update, the cache has to be initialised
Gets the date of the last (successfull) update from thetvdb
Date of last update or null if no previous update or cache not initialised
Aborts the currently running Update
if true, all changes that have already been
made will be saved to cache, if not they will be discarded
Make the update
interval of update
zipped downloading yes/no
true if successful, false otherwise
Update the series with the banner
true, if the banner was updated successfully, false otherwise
Update the series with the episode (Add it to the series if it doesn't already exist or update the episode if the current episode is older than the updated one)
Series of the updating episode
Episode that is updated
Progress of the update run
Description of the current update
true if episode has been updated, false if not (e.g. timestamp of updated episode older than
timestamp of existing episode
Download the new series and update the information
Series to update
When was the last update made
The progress done until now
true if the series has been upated false if not
Reloads all language definitions from tvdb
true if successful, false otherwise
Closes the cache provider (should be called before exiting the application)
Returns all series id's that are already cached in memory or locally via the cacheprovider
List of loaded series
Forces a complete reload of the series. All information that has already been loaded (including loaded images!) will be deleted and reloaded from tvdb -> if you only want to update the series, use the "MakeUpdate" method
Series to reload
The new TvdbSeries object
Forces a complete reload of the series. All information that has already been loaded will be deleted and reloaded from tvdb -> if you only want to update the series, use the "MakeUpdate" method
Series to reload
If yes, also deletes previously loaded images
The new TvdbSeries object
Forces a complete reload of the series. All information that has already been loaded (including loaded images!) will be deleted and reloaded from tvdb -> if you only want to update the series, use the "MakeUpdate" method
Series to update
Should episodes be loaded as well
Should actors be loaded as well
Should banners be loaded as well
The new TvdbSeries object
Forces a complete reload of the series. All information that has already been loaded will be deleted and reloaded from tvdb -> if you only want to update the series, use the "MakeUpdate" method
Series to update
Should episodes be loaded as well
Should actors be loaded as well
Should banners be loaded as well
If yes, also deletes previously loaded images
The new TvdbSeries object
Gets the preferred language of the user
user information has to be set, otherwise TvdbUserNotFoundException is thrown
preferred language of userException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existThe tvdb database is unavailable
Check if series is in the list of favorites
Gets a list of IDs of the favorite series of the user
id list of favorite seriesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existThe tvdb database is unavailable
Get the favorite series of the user (only basic series information will be loaded)
Which language should be used
List of favorite seriesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existThe tvdb database is unavailable
Adds the series id to the users list of favorites and returns the new list of
favorites
series to add to the favorites
new list with all favoritesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existThe tvdb database is unavailable
Adds the series to the users list of favorites and returns the new list of
favorites
series to add to the favorites
new list with all favoritesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existThe tvdb database is unavailable
Removes the series id from the users list of favorites and returns the new list of
favorites
series to remove from the favorites
new list with all favoritesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existThe tvdb database is unavailable
Removes the series from the users list of favorites and returns the new list of
favorites
series to remove from the favorites
new list with all favoritesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existThe tvdb database is unavailable
Rate the given series
series id
The rating we want to give for this series
Current rating of the seriesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existException is thrown when thetvdb isn't available.
Rate the given episode
Episode Id
Rating we want to give for episode
Current rating of episodeException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existException is thrown when thetvdb isn't available.
Gets all series this user has already ratet
Thrown when no user is setA list of all rated seriesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existException is thrown when thetvdb isn't available.
Gets all series this user has already ratet
Id of series
Thrown when no user is setA list of all ratings for the seriesException is thrown when there was an error parsing the xml files. Feel free to post a detailed description of this issue on http://code.google.com/p/tvdblib
or http://forums.thetvdb.com/The user doesn't existException is thrown when thetvdb isn't available.
Called whenever an running update makes any progress
Called when a running update finishes, UpdateFinishedEventArgs gives an overview
of the update
UserInfo for this tvdb handler
Unique id for every project that is using thetvdb
More information on: http://thetvdb.com/wiki/index.php/Programmers_API
Is the handler using caching and is the cache initialised
Returns list of all available Languages on tvdb
list of available languages
Are the language definitions already cached
EventArgs used when a running update progresses, contains information on the
current stage and progress
Constructor for UpdateProgressEventArgs
The current state of the updating progress
Description of the current update stage
Progress of the current stage
Overall progress of the update
Current state of update progress
Description of the current update stage
Progress of the current stage
Overall progress of the update
The current state of the updating progress
we're currently downloading the update files from http://thetvdb.com
we're currently processing the updated series
we're currently processing the updated episodes
we're currently processing the updated banner
the updating itself has finished, do cleanup work
EventArgs used when an update has finished, contains start date, end date and
an overview of all updated content
Constructor for UpdateFinishedEventArgs
When did the update start
When did the update finish
List of all series (ids) that were updated
List of all episode (ids)that were updated
List of all banners (ids) that were updated
When did the update start
When did the update finish
List of all series (ids) that were updated
List of all episode (ids)that were updated
List of all banners (ids) that were updated
Delegate for UpdateProgressed Event
EventArgs
Delegate for UpdateFinished event
EventArgs
Baseclass for a tvdb language
The default language (which is English)
Id: 7
Abbriviation: en
Name: English
language valid for all available languages
Id: 7
Abbriviation: en
Name: English
TvdbLanguage constructor
TvdbLanguage constructor
Id of language
Name of language (e.g. English)
Abbriviation of language (e.g. en)
Returns String that describes the language in the format "Name (Abbriviation)"
String representing this object (e.g. "English (en)")
Overrides the equals Method to ensure a valid comparison of two language objects. The
comparison currently matches abbriviation only.
object to compare with
True if the two language objects are the same, false otherwise
Returns a hash code of the object
Hash code
Overrides the equality operator to ensure a valid comparison of two language objects. The
comparison currently matches abbriviation only.
First language object
Second language object
True if the two language objects are the same, false otherwise
Overrides the inequality operator to ensure a valid comparison of two language objects. The
comparison currently matches abbriviation only.
First language object
Second language object
True if the two language objects are the same, false otherwise
Id of the language
Abbriviation of the series
Name of the series
Holds data pertinent to a data descriptor.
Get /set the compressed size of data.
Get / set the uncompressed size of data
Get /set the crc value.
This class assists with writing/reading from Zip files.
Initialise an instance of this class.
The name of the file to open.
Initialise a new instance of .
The stream to use.
Close the stream.
The underlying stream is closed only if is true.
Locates a block with the desired .
The signature to find.
Location, marking the end of block.
Minimum size of the block.
The maximum variable data.
Eeturns the offset of the first byte after the signature; -1 if not found
Write Zip64 end of central directory records (File header and locator).
The number of entries in the central directory.
The size of entries in the central directory.
The offset of the dentral directory.
Write the required records to end the central directory.
The number of entries in the directory.
The size of the entries in the directory.
The start of the central directory.
The archive comment. (This can be null).
Read an unsigned short in little endian byte order.
Returns the value read.
An i/o error occurs.
The file ends prematurely
Read an int in little endian byte order.
Returns the value read.
An i/o error occurs.
The file ends prematurely
Read a long in little endian byte order.
The value read.
Write an unsigned short in little endian byte order.
The value to write.
Write a ushort in little endian byte order.
The value to write.
Write an int in little endian byte order.
The value to write.
Write a uint in little endian byte order.
The value to write.
Write a long in little endian byte order.
The value to write.
Write a ulong in little endian byte order.
The value to write.
Write a data descriptor.
The entry to write a descriptor for.
Returns the number of descriptor bytes written.
Read data descriptor at the end of compressed data.
if set to true [zip64].
The data to fill in.
Returns the number of bytes read in the descriptor.
Get / set a value indicating wether the the underlying stream is owned or not.
If the stream is owned it is closed when this instance is closed.
Exception that is thrown when a nonexistent content is requested
TvdbInvalidAPIKeyException constructor
Message
TvdbInvalidAPIKeyException constructor
XmlCacheProvider stores all the information that have been retrieved from http://thetvdb.com as human-readable xml files on the hard disk
Constructor for XmlCacheProvider
This is the folder on the disk where all the information are stored
Properly describe the CacheProvider for neat-reasons
String describing the cache provider
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
TvdbData object
Closes the cache (e.g. close open connection, etc.)
true if successful, false otherwise
Saves cache settings
settings
Save the language to cache
List of languages that are available on http://thetvdb.com
Save the mirror info to cache
Mirrors
Saves the series to cache
The series to save
Loads the settings data from cache
The loaded TvdbData object
Loads the available languages from cache
List of available languages
Load the available mirrors from cache
List of mirrors
Loads all series from cache
A list of TvdbSeries objects from cache or null
Load the give series from cache
Id of the series to load
Series that has been loaded or null if series doesn't exist
Load user info from cache
Id of the user
TvdbUser object or null if the user couldn't be loaded
Saves the user data to cache
TvdbUser object
Receives a list of all series that have been cached
A list of series that have been already stored with this cache provider
Check if the series is cached in the given configuration
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
Completely refreshes the cache (all stored information is lost)
true if the cache was cleared successfully,
false otherwise (e.g. no write rights,...)
Remove a specific series from cache
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
banner to save
id of series
filename (will be the same name used by LoadImageFromCache)
Loads the specified image from the cache
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)
id of series
name of image
true if image was removed successfully, false otherwise (e.g. image didn't exist)
Is the cache provider initialised
Baseclass for a tvdb mirror. A mirror is defined in the tvdb xml by:
1http://thetvdb.com7
]]>
TvdbMirror constructor
TvdbMirror constructor
Id of the mirror
Url to the mirror
Typemask of the mirror, see property "TypeMask"
Id of the mirror
The value of typemask is the sum of whichever file types that mirror holds:
1 xml files
2 banner files
4 zip files
So, a mirror that has a typemask of 5 would hold XML and ZIP files, but no banner files.
Returns true if the mirror offers images for downloading, false otherwise
Returns true if the mirror offers xml files for downloading, false otherwise
Returns true if the mirror offers zipped downloads, false otherwise
Path to the mirror
ID's of external sites
Id for the popular movie/tv site www.imdb.com
Update interval
updated content since the last day
updated content since the last week
updated content since the last month
the interval is determined automatically
Parses an integer string and returns the number or -99 if the format
is invalid
Parses an double string and returns the number or -99 if the format
is invalid
Splits a tvdb string (having the format | item1 | item2 | item3 |)
Parse the short description of a tvdb language and returns the proper
object. If no such language exists yet (maybe the list of available
languages hasn't been downloaded yet), a placeholder is created
Converts a unix timestamp (used on tvdb) into a .net datetime object
Timestamp to convert
.net DateTime object
Converts a .net datetime object into a unix timestamp (used on tvdb)
Date to convert
Unix timestamp
returns a day of the week object parsed from the string
String representation of this day of the week
.net DayOfWeek enum
Returns a List of colors parsed from the _text
Returns a point objects parsed from _text
Parse a boolean value from thetvdb xml files
Boolean value to parse
Returns the fitting SeriesBanner type from parameter
Add the episode to the series
Parse a datetime value from thetvdb
The date string that needs parsing
DateTime object of the parsed date
Tries to find an episode by a given id from a list of episodes
Id of the episode we're looking for
List of episodes
The first found TvdbEpisode object or null if nothing was found
Tries to find a series by a given id from a list of series
Id of the series we're looking for
List of series objects
The first found TvdbSeries object or null if nothing was found
List of available languages -> needed for some methods
Type when handling user favorites
SharpZipBaseException is the base exception class for the SharpZipLibrary.
All library exceptions are derived from this.
NOTE: Not all exceptions thrown will be derived from this class.
A variety of other exceptions are possible for example
Deserialization constructor
for this constructor
for this constructor
Initializes a new instance of the SharpZipBaseException class.
Initializes a new instance of the SharpZipBaseException class with a specified error message.
A message describing the exception.
Initializes a new instance of the SharpZipBaseException class with a specified
error message and a reference to the inner exception that is the cause of this exception.
A message describing the exception.
The inner 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.)"
largest prime smaller than 65536
Creates a new instance of the Adler32 class.
The checksum starts off with a value of 1.
Resets the Adler32 checksum to the initial value.
Updates the checksum with a byte value.
The data value to add. The high byte of the int is ignored.
Updates the checksum with an array of bytes.
The source of the data to update with.
Updates the checksum with the bytes taken from the array.
an array of bytes
the start of the data used for this update
the number of bytes to use for this update
Returns the Adler32 data checksum computed so far.
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
Season of the banner
Type of the banner
Type of the season banner
Season banner (poster format)
Wide season banner (banner format)
no format specified
ExtraData tagged value interface.
Set the contents of this instance from the data passed.
The data to extract contents from.
The offset to begin extracting data from.
The number of bytes to extract.
Get the data representing this instance.
Returns the data for this instance.
Get the ID for this tagged data value.
A raw binary tagged value
Initialise a new instance.
The tag ID.
Set the data from the raw values provided.
The raw data to extract values from.
The index to start extracting values from.
The number of bytes available.
Get the binary data representing this instance.
The raw binary data representing this instance.
The tag ID for this instance.
Get the ID for this tagged data value.
Get /set the binary data representing this instance.
The raw binary data representing this instance.
Class representing extended unix date time values.
Set the data from the raw values provided.
The raw data to extract values from.
The index to start extracting values from.
The number of bytes available.
Get the binary data representing this instance.
The raw binary data representing this instance.
Test a value to see if is valid and can be represented here.
The value to test.
Returns true if the value is valid and can be represented; false if not.The standard Unix time is a signed integer data type, directly encoding the Unix time number,
which is the number of seconds since 1970-01-01.
Being 32 bits means the values here cover a range of about 136 years.
The minimum representable time is 1901-12-13 20:45:52,
and the maximum representable time is 2038-01-19 03:14:07.
Get the ID
Get /set the Modification Time
Get / set the Access Time
Get / Set the Create Time
Get/set the values to include.
Flags indicate which values are included in this instance.
The modification time is included
The access time is included
The create time is included.
Class handling NT date time values.
Set the data from the raw values provided.
The raw data to extract values from.
The index to start extracting values from.
The number of bytes available.
Get the binary data representing this instance.
The raw binary data representing this instance.
Test a valuie to see if is valid and can be represented here.
The value to test.
Returns true if the value is valid and can be represented; false if not.
NTFS filetimes are 64-bit unsigned integers, stored in Intel
(least significant byte first) byte order. They determine the
number of 1.0E-07 seconds (1/10th microseconds!) past WinNT "epoch",
which is "01-Jan-1601 00:00:00 UTC". 28 May 60056 is the upper limit
Get the ID for this tagged data value.
Get/set the last modification time.
Get /set the create time
Get /set the last access time.
A factory that creates tagged data instances.
Get data for a specific tag value.
The tag ID to find.
The data to search.
The offset to begin extracting data from.
The number of bytes to extract.
The located value found, or null if not found.
A class to handle the extra data field for Zip entries
Extra data contains 0 or more values each prefixed by a header tag and length.
They contain zero or more bytes of actual data.
The data is held internally using a copy on write strategy. This is more efficient but
means that for extra data created by passing in data can have the values modified by the caller
in some circumstances.
Initialise a default instance.
Initialise with known extra data.
The extra data.
Get the raw extra data value
Returns the raw byte[] extra data this instance represents.
Clear the stored data.
Get a read-only for the associated tag.
The tag to locate data for.
Returns a containing tag data or null if no tag was found.
Get the tagged data for a tag.
The tag to search for.
Returns a tagged value or null if none found.
Find an extra data value
The identifier for the value to find.
Returns true if the value was found; false otherwise.
Add a new entry to extra data.
The value to add.
Add a new entry to extra data
The ID for this entry.
The data to add.
If the ID already exists its contents are replaced.
Start adding a new entry.
Add data using , , , or .
The new entry is completed and actually added by calling
Add entry data added since using the ID passed.
The identifier to use for this entry.
Add a byte of data to the pending new entry.
The byte to add.
Add data to a pending new entry.
The data to add.
Add a short value in little endian order to the pending new entry.
The data to add.
Add an integer value in little endian order to the pending new entry.
The data to add.
Add a long value in little endian order to the pending new entry.
The data to add.
Delete an extra data field.
The identifier of the field to delete.
Returns true if the field was found and deleted.
Read a long in little endian form from the last found data value
Returns the long value read.
Read an integer in little endian form from the last found data value.
Returns the integer read.
Read a short value in little endian form from the last found data value.
Returns the short value read.
Read a byte from an extra data
The byte value read or -1 if the end of data has been reached.
Skip data during reading.
The number of bytes to skip.
Internal form of that reads data at any location.
Returns the short value read.
Dispose of this instance.
Gets the current extra data length.
Get the length of the last value found by This is only valid if has previously returned true.
Get the index for the current read value.
This is only valid if has previously returned true.
Initially the result will be the index of the first byte of actual data. The value is updated after calls to
, and .
Get the number of bytes remaining to be read for the current value;
A special stream deflating or compressing the bytes that are
written to it. It uses a Deflater to perform actual deflating.
Authors of the original java version : Tom Tromey, Jochen Hoenicke
Creates a new DeflaterOutputStream with a default Deflater and default buffer size.
the output stream where deflated output should be written.
Creates a new DeflaterOutputStream with the given Deflater and
default buffer size.
the output stream where deflated output should be written.
the underlying deflater.
Creates a new DeflaterOutputStream with the given Deflater and
buffer size.
The output stream where deflated output is written.
The underlying deflater to use
The buffer size to use when deflating
bufsize is less than or equal to zero.
baseOutputStream does not support writing
deflater instance is null
Finishes the stream by calling finish() on the deflater.
Not all input is deflated
Encrypt a block of data
Data to encrypt. NOTE the original contents of the buffer are lost
Offset of first byte in buffer to encrypt
Number of bytes in buffer to encrypt
Initializes encryption keys based on given .
The password.
Deflates everything in the input buffers. This will call
def.deflate() until all bytes from the input buffers
are processed.
Sets the current position of this stream to the given value. Not supported by this class!
The offset relative to the to seek.
The to seek from.
The new position in the stream.Any access
Sets the length of this stream to the given value. Not supported by this class!
The new stream length.
Any access
Read a byte from stream advancing position by one
The byte read cast to an int. THe value is -1 if at the end of the stream.Any access
Read a block of bytes from stream
The buffer to store read data in.
The offset to start storing at.
The maximum number of bytes to read.
The actual number of bytes read. Zero if end of stream is detected.Any access
Asynchronous reads are not supported a NotSupportedException is always thrown
The buffer to read into.
The offset to start storing data at.
The number of bytes to read
The async callback to use.
The state to use.
Returns an Any access
Asynchronous writes arent supported, a NotSupportedException is always thrown
The buffer to write.
The offset to begin writing at.
The number of bytes to write.
The to use.
The state object.
Returns an IAsyncResult.Any access
Flushes the stream by calling Flush on the deflater and then
on the underlying stream. This ensures that all bytes are flushed.
Calls and closes the underlying
stream when is true.
Writes a single byte to the compressed output stream.
The byte value.
Writes bytes from an array to the compressed stream.
The byte array
The offset into the byte array where to start.
The number of bytes to write.
This buffer is used temporarily to retrieve the bytes from the
deflater and write them to the underlying output stream.
The deflater which is used to deflate the stream.
Base stream the deflater depends on.
Get/set flag indicating ownership of the underlying stream.
When the flag is true will close the underlying stream also.
Allows client to determine if an entry can be patched after its added
Get/set the password used for encryption.
When set to null or if the password is empty no encryption is performed
Gets value indicating stream can be read from
Gets a value indicating if seeking is supported for this stream
This property always returns false
Get value indicating if this stream supports writing
Get current length of stream
Gets the current position within the stream.
Any attempt to set position
This class stores the pending output of the Deflater.
author of the original java version : Jochen Hoenicke
This class is general purpose class for writing data to a buffer.
It allows you to write bits as well as bytes
Based on DeflaterPending.java
author of the original java version : Jochen Hoenicke
Internal work buffer
construct instance using default buffer size of 4096
construct instance using specified buffer size
size to use for internal buffer
Clear internal state/buffers
Write a byte to buffer
The value to write
Write a short value to buffer LSB first
The value to write.
write an integer LSB first
The value to write.
Write a block of data to buffer
data to write
offset of first byte to write
number of bytes to write
Align internal buffer on a byte boundary
Write bits to internal buffer
source of bits
number of bits to write
Write a short value to internal buffer most significant byte first
value to write
Flushes the pending buffer into the given output array. If the
output array is to small, only a partial flush is done.
The output array.
The offset into output array.
The maximum number of bytes to store.
The number of bytes flushed.
Convert internal buffer to byte array.
Buffer is empty on completion
The internal buffer contents converted to a byte array.
The number of bits written to the buffer
Indicates if buffer has been flushed
Construct instance with default buffer size
Exception thrown when a request is made which requires a valid
api key but none is set
TvdbInvalidAPIKeyException constructor
Message
TvdbInvalidAPIKeyException constructor
PkzipClassic embodies the classic or original encryption facilities used in Pkzip archives.
While it has been superceded by more recent and more powerful algorithms, its still in use and
is viable for preventing casual snooping
Generates new encryption keys based on given seed
The seed value to initialise keys with.
A new key value.
PkzipClassicCryptoBase provides the low level facilities for encryption
and decryption using the PkzipClassic algorithm.
Transform a single byte
The transformed value
Set the key schedule for encryption/decryption.
The data use to set the keys from.
Update encryption keys
Reset the internal state.
PkzipClassic CryptoTransform for encryption.
Initialise a new instance of
The key block to use.
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.
Transforms the specified region of the input byte array and copies
the resulting transform to the specified region of the output byte array.
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.
Cleanup internal state.
Gets a value indicating whether the current transform can be reused.
Gets the size of the input data blocks in bytes.
Gets the size of the output data blocks in bytes.
Gets a value indicating whether multiple blocks can be transformed.
PkzipClassic CryptoTransform for decryption.
Initialise a new instance of .
The key block to decrypt with.
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.
Transforms the specified region of the input byte array and copies
the resulting transform to the specified region of the output byte array.
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.
Cleanup internal state.
Gets a value indicating whether the current transform can be reused.
Gets the size of the input data blocks in bytes.
Gets the size of the output data blocks in bytes.
Gets a value indicating whether multiple blocks can be transformed.
Defines a wrapper object to access the Pkzip algorithm.
This class cannot be inherited.
Generate an initial vector.
Generate a new random key.
Create an encryptor.
The key to use for this encryptor.
Initialisation vector for the new encryptor.
Returns a new PkzipClassic encryptor
Create a decryptor.
Keys to use for this new decryptor.
Initialisation vector for the new decryptor.
Returns a new decryptor.
Get / set the applicable block size in bits.
The only valid block size is 8.
Get an array of legal key sizes.
Get an array of legal block sizes.
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
Constructs a default StreamManipulator with all buffers empty
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. */
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.
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.
Skips to the next byte boundary.
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.
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
Resets state and empties internal buffers
Add more input for consumption.
Only call when IsNeedingInput returns true
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.
the number of bits available.
Gets the number of bytes available.
The number of bytes available.
Returns true when SetInput can be called
Class that holds all user information
TvdbUser constructor
Name of the user, can be choosen freely
User identifier from http://thetvdb.com
TvdbUser constructor
Preferred language of the user
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.
Username
List of user favorites
Description of TvdbInvalidXmlException.
TvdbInvalidXmlException constructor
Message
TvdbInvalidXmlException constructor
Message
Inner Exception
TvdbInvalidXmlException constructor
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|...|Thursday9:00 PMTV-142004-09-22|Action and Adventure|Drama|Science-Fiction|tt0411008enABCAfter Oceanic Air flight 815...8.96024313LostContinuinggraphical/24313-g2.jpgfanart/original/73739-1.jpg1205694666SH672362
- 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
Basic constructor for the TvdbSeries class
Create a series object with all the information contained in the TvdbSeriesFields object
Add a new language to the series
Set the language of the series to one of the languages that have
already been loaded
The new language for this series
true if success, false otherwise
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
Get all languages that have already been loaded for this series
List of all translations that are loaded for this series
Return a list of episodes for the given season
Season for which episodes should be returned
List of episodes for the given season
returns SeriesName (SeriesId)
String representing this series
Uptdate the info of the current series with the updated one
TvdbSeries object
Get all available Translations
Is the series a favorite
Returns the genre string in the format | genre1 | genre2 | genre3 |
Formatted String of actors that appear during this episode in the
format | actor1 | actor2 | actor3 |
returns a list of all banners for this series
Is the banner info loaded
returns a list of all series banners for this series
Returns a list of all season banners for this series
Returns a list of all season banners for this series
Returns a list of all fanart banners for this series
How many Season does the series have
List of loaded tvdb actors
Is the actor info loaded
Represents exception conditions specific to Zip archive handling
Deserialization constructor
for this constructor
for this constructor
Initializes a new instance of the ZipException class.
Initializes a new instance of the ZipException class with a specified error message.
The error message that explains the reason for the exception.
Initialise a new instance of ZipException.
A message describing the error.
The exception that is the cause of the current exception.
Strategies for deflater
The default strategy
This strategy will only allow longer string repetitions. It is
useful for random data with a small character set.
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.
Low level compression engine for deflate algorithm which uses a 32K sliding window
with secondary compression from Huffman/Shannon-Fano codes.
Construct instance with pending buffer
Pending buffer to use
>
Deflate drives actual compression of data
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 buffer containing input data.
The offset of the first byte of data.
The number of bytes of data to use as input.
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.
Reset internal state
Reset Adler checksum
Set the deflate level (0-9)
The value to set the level to.
Fill the window
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
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.
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.
Points to the current character in the window.
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.
The current compression function.
The input data for compression.
The total bytes of input read.
The offset into inputBuf, where input data starts.
The end offset of the input data.
The adler checksum
Get current value of Adler checksum
Total data processed
Get/set the deflate strategy
Exception thrown when no user has been found
TvdbUserNotFoundException constructor
Message
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
]]>
Base server where all operations start
Path of file where we get the available languages
Creates link which (depending on params) gets user favorites, adds a series to user
favorites or removes a series from the favorite lis
Link
Creates link which only retrieves the user favourites
Link
Create link to get actor info
series id
api key
Link
create a link to all series rated by the user
api key
user identifier
Link
create a link to all items rated by the user for this series
api key
user identifier
id of the series
Link
Class representing the result of a tvdb name query -> for further information
visit http://thetvdb.com/wiki/index.php/API:GetSeries
TvdbSearchResult constructor
TvdbSearchResult constructor
Id of series
Id of the returned series
Name of the returned series
When was the returned series aired first
Language of the returned series
Overview of the returned series
Banner of the returned series
Imdb id of the returned series
Represents a rating entry from thetvdb
Which item type is this rating for
Community Rating is a double value from 0 to 10 and is the mean value of all user ratings for this item
The rating from this user
Enum with all items on thetvdb that can be rated
Item is a series
Item is an episode
Determines how entries are tested to see if they should use Zip64 extensions or not.
Zip64 will not be forced on entries during processing.
An entry can have this overridden if required
Zip64 should always be used.
#ZipLib will determine use based on entry values when added to archive.
The kind of compression used for an entry in an archive
A direct copy of the file contents is held in the archive
Common Zip compression method using a sliding dictionary
of up to 32KB and secondary compression from Huffman/Shannon-Fano trees
An extension to deflate with a 64KB window. Not supported by #Zip currently
BZip2 compression. Not supported by #Zip.
WinZip special for AES encryption, Not supported by #Zip.
Identifies the encryption algorithm used for an entry
No encryption has been used.
Encrypted using PKZIP 2.0 or 'classic' encryption.
DES encryption has been used.
RCS encryption has been used for encryption.
Triple DES encryption with 168 bit keys has been used for this entry.
Triple DES with 112 bit keys has been used for this entry.
AES 128 has been used for encryption.
AES 192 has been used for encryption.
AES 256 has been used for encryption.
RC2 corrected has been used for encryption.
Blowfish has been used for encryption.
Twofish has been used for encryption.
RC4 has been used for encryption.
An unknown algorithm has been used for encryption.
Defines the contents of the general bit flags field for an archive entry.
Bit 0 if set indicates that the file is encrypted
Bits 1 and 2 - Two bits defining the compression method (only for Method 6 Imploding and 8,9 Deflating)
Bit 3 if set indicates a trailing data desciptor is appended to the entry data
Bit 4 is reserved for use with method 8 for enhanced deflation
Bit 5 if set indicates the file contains Pkzip compressed patched data.
Requires version 2.7 or greater.
Bit 6 if set strong encryption has been used for this entry.
Bit 7 is currently unused
Bit 8 is currently unused
Bit 9 is currently unused
Bit 10 is currently unused
Bit 11 if set indicates the filename and
comment fields for this file must be encoded using UTF-8.
Bit 12 is documented as being reserved by PKware for enhanced compression.
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.
Bit 14 is documented as being reserved for use by PKware
Bit 15 is documented as being reserved for use by PKware
This class contains constants used for Zip format files
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.
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.
The minimum version required to support strong encryption
The minimum version required to support strong encryption
The version required for Zip64 extensions
Size of local entry header (excluding variable length fields at end)
Size of local entry header (excluding variable length fields at end)
Size of Zip64 data descriptor
Size of data descriptor
Size of data descriptor
Size of central header entry (excluding variable fields)
Size of central header entry
Size of end of central record (excluding variable fields)
Size of end of central record (excluding variable fields)
Size of 'classic' cryptographic header stored before any entry data
Size of cryptographic header stored before entry data
Signature for local entry header
Signature for local entry header
Signature for spanning entry
Signature for spanning entry
Signature for temporary spanning entry
Signature for temporary spanning entry
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.
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.
Signature for central header
Signature for central header
Signature for Zip64 central file header
Signature for Zip64 central file header
Signature for Zip64 central directory locator
Signature for archive extra data signature (were headers are encrypted).
Central header digitial signature
Central header digitial signature
End of central directory record signature
End of central directory record signature
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
Convert a byte array to string
Byte array to convert
dataconverted to a string
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
Convert a byte array to string
Byte array to convert
The applicable general purpose bits flags
dataconverted to a string
Convert a string to a byte array
String to convert to an array
Converted array
Convert a string to a byte array
The applicable general purpose bits flags
String to convert to an array
Converted array
Initialise default instance of ZipConstants
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.
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
Pending buffer to use
Construct instance with pending buffer
Pending buffer to use
Reset internal state
Write all trees to pending buffer
The number/rank of treecodes to send.
Compress current buffer writing data to pending buffer
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
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
Get value indicating if internal buffer is full
true if buffer is full
Add literal to buffer
Literal value to add to buffer.
Value indicating internal buffer is full
Add distance code and length to literal and distance trees
Distance code
Length
Value indicating if internal buffer is full
Reverse the bits of a 16 bit value.
Value to reverse bits
Value with bits reversed
Resets the internal state of the tree
Check that all frequencies are zero
At least one frequency is non-zero
Set static codes and length
new codes
length for new codes
Build dynamic codes and lengths
Get encoded length
Encoded length, the sum of frequencies * lengths
Scan a literal or distance tree to determine the frequencies of the codes
in the bit length tree.
Write tree values
Tree to write
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.
The crc data checksum so far.
Resets the CRC32 data checksum as if no update was ever called.
Updates the checksum with the int bval.
the byte is taken as the lower 8 bits of value
Updates the checksum with the bytes taken from the array.
buffer an array of bytes
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.
Returns the CRC32 data checksum computed so far.
Compare episodes according to their default episode numbers (aired)
Compare episodes according to their dvd episode number
Compare episodes according to their absolute episode number