Version 0.4.9 [2008-04-09]
=================================================================
+new !fix ~change -remove | focus: major feature improvements
+ RSS/Atom parser (req. python newt module >= 0.51)
Designed to be used with video host feeds. Parses and displays
found videos available for extraction. If the required newt module
is not found, the feature is disabled.
Note that the python feedparser module is now part of the clive
distribution, for more details, see the README file.
Option:
--rss (config: url_feed)
When the --rss option is used, the URLs are treated as RSS/Atom feed URLs,
for example:
% clive --rss http://youtube.com/rss/global/recently_featured.rss
Downstreamers: Python newt module is a new prerequisite. Note that the
program still runs without it, only the --rss feature is disabled.
FreeBSD: the newt library needs to be built with WITH_PYTHON,
for example:
% cd /usr/ports/devel/newt
% make WITH_PYTHON=yes install clean
Ubuntu: https://bugs.launchpad.net/ubuntu/+source/newt/+bug/110880
+ Dailymotion: Log-in support (sr #1834)
Options:
--dmotion-user=USERNAME (config: dmotion_id)
--dmotion-pass=PASSWORD (config: dmotion_password)
+ Metacafe: Family filter off (sr #1956)
The family filter is disabled for all extractions.
+ Youtube: Log-in support (sr #1953)
Resurrected the log-in support that was previously available in 0.2.x
but removed in 0.3.0 due to the complete program overhaul.
Options:
--youtube-user=USERNAME (config: youtube_id)
--youtube-pass=PASSWORD (config: youtube_password)
! ~/.clive/config; improved parsing
The parser is now more resistant to invalid values. clive will now also
exit if an error occurs while parsing.
! ~/.clive/config; output_if_file_exists
Accepts "RENAME" as it should have.
! Console; q_r_paste command
Crash at: "UnboundLocalError: local variable 'cmd' referenced before assignment"
~ --write-conf; increased verbosity
clive is now more verbose about found 3rd party programs.
~ --write-conf; sort commands
The written commands are now sorted alphabetically.
Version 0.4.8 [2008-03-31]
=================================================================
+new !fix ~change -remove | focus: minor bugfixes
+ Youtube: HTTP/415 No media fallback
Extract low quality (flv) video if better quality (mp4) is not available.
! Youtube: Partial support for continuing transfers
It is now be possible to continue partial downloads as long as they are
high-quality (mp4) videos.
Note that this fails utterly for the flv videos. It appears urlgrabber
appends a complete file at the end of the existing file when the host
refuses to continue transfer. Instead of bloating the code with the
conditions, continuing the youtube flv file transfers remains disabled.
! Dailymotion: improved media support
clive no more assumes 512x384 is the highest available quality. The
video page is now parsed for best available quality which clive extracts
unless the --low-quality option is being used. It should be noted that
most videos appear to have only the low-quality (flv) video available.
No media warning will be displayed if high quality video is not found
and the low quality video is extracted instead.
! Transfer rate calculations
File length offset is now used properly with files that are being
overwritten. This fixes the only-progress-percentage odditity is
being displayed.
! Youtube: New error messages
"error: country restriction/censorship"
"error: private video"
! --check-update,-u
Crash at: "TypeError: __init__() takes exactly 2 arguments (1 given)"
~ Reduce progress stdout flickering (sr #1944)
Progress is now rendered in one second intervals. clive will now also
display average transfer rate and total time elapsed when the transfer
completes.
~ Clean up
clive(1), INSTALL etc.
Version 0.4.7 [2008-03-17]
=================================================================
+new !fix ~change -remove | focus: major feature enhancements
+ GNU Autotools support
See the INSTALL file for the updated installation details.
+ urlgrabber integration
The urlgrabber module is now part of the source code distribution.
For more info, please read the README file.
Downstream maintainers: urlgrabber module is no longer a prerequisite
+ Cache
If caching is enabled, clive will collect data about visited URLs
to a sqlite3 database file (~/.clive/cache). Note that cache is only
available for Python >= 2.5. Also, depending on the system, the sqlite3
may not be installed with Python by default, e.g. on FreeBSD you need
to install it separately (databases/py-sqlite3).
Added also --no-cache and enable_cache. Caching is enabled by default.
+ Youtube: new default format
clive now defaults to extract the better quality (mp4) videos from Youtube.
The default behaviour can be overridden with the --low-quality option.
+ "Paste" option displayed at program start
The state for "paste from xclip" is now displayed when the program starts.
! Same output filename in URL batch
clive did not previously check the URLs in current batch for same output
filename. For example:
http://video.google.com/videoplay?docid=-4505462782975458603http://video.google.ca/videoplay?docid=-4505462782975458603
Both URLs point to the same video, note the different TLD. If they were
fed to clive in same URL batch the program accepted them without any
scrutiny. This resulted clive to waste bandwidth downloading the same
file twice and overwriting the previously extracted video file.
clive now generates (--exist=rename) a new output filename for the last
URL.
! Dailymotion support
clive will now attempt to extract the higher resolution vide (mp4) _only_
if it is available. This was causing HTTP/404 errors for some dmotion URLs
with the previous release.
The new option --low-quality overrides this default behaviour.
! Status/progress stdout line breaking on some system configurations
This was caused by improper use of '\b' which would cause the lines
to break on some terminal emulation settings.
! Calculations for resumed transfers (patch #990)
The transfer rate calculations should no longer go berzerk for
resumed transfers.
"The problem is that when urlgrabber calls update(), the 'read'
parameter is the current size of the file. When you resume, you
need to discard the offset from the previous download or else
the calculations will be off." -- zythmer
~ clive(1)
The manual page was rewritten.
~ Accept-encoding is now always set to gzip
Removed the rather useless --no-gzip option from wasting space.
Note that compression is only used if the host supports it.
~ Configuration file format
The configuration file format has undergone several iterations of
changes over the last 12 months and this release introduces yet another
format. Wait for it. This one's final. For a comparison:
Then: {.., 'verbose':1, ..}
Now: enable_verbose="YES"
To get started, you can generate a "template" configuration file
with:
% clive --write-conf
The created file contains comments and all supported commands. clive
will also attempt to autodetect the 3rd party programs such as ffmpeg
and set the paths to these programs with recommended options.
~ File name changes in ~/.clive
config.py -> config
last.log -> recall
userdef.py -> custom.py
Note that since history is no longer used, the ~/.clive/history.log is
now obsolete and can be removed if it's still around.
~ Option --write-conf
Previously known as --conf-write. Writes the config file with default
program values. clive will now attempt to autodetect vlc, ffmpeg and
xclip.
~ Option --emit
Renamed to "--emit-csv". Standard output format was also changed.
From:
video: "extraction-url" "filename" "length"\n
To:
OK: "url","extraction-url","filename","length"\n
FAILED: "url","error-message"\n
Should be now more parsing-friendly.
~ Options changed
Much of the options were either renamed, merged, removed or otherwise
modified. Some new short options were added also.
~ Renamed --simulate
Renamed --simulate,-s to --no-extract,-n.
~ Tweaked warnings
Some of the warnings were rewritten.
~ Stdout overhaul
Much of the stdout messages were changed, e.g. "status:" and similar
were replaced with lines that make better use of the line space.
~ Options displayed at program start
Renamed "throttle" to "rate". Renamed "exists" to "exist".
~ sys.platform instead of platform.uname
Platform string is now constructed using the platform module.
- Logging features
More or less replaced by the new "cache" and "recall" features.
See also "File name changes" above.
- GUI features: --configure, --history
Rather than transforming clive into a CLI-GUI hybrid, I've decided
to remove the GUI elements. The code to these short-lived features
could still be reused for a GUI-only clive configruation tool later
if there's any demand for it.
Downstream maintainers: Tkinter is no longer used by clive.
- Mswindows support
Anyone familiar with the woe32 specific non-standard approach to
everything can probably relate to this, and even if python hides
much of the mswindows nonsense, I've decided not to bother myself
with it anymore. So instead of bloating the code base with a set
of conditions and exceptions for woe32, I've, hereby, removed
all of the ms-platform specific nonsense from the project.
Come to the unix side.
- distutils support (setup.py)
Starting from this release, clive uses GNU Autotools.
- stage6 support
Shut down service effective February 28, 2008
(http://www.stage6.com/blog/107/).
Newt is a windowing toolkit for text mode built from the slang
library. It allows color text mode applications to easily use
stackable windows, push buttons, check boxes, radio buttons, lists,
entry fields, labels, and displayable text. Scrollbars are supported,
and forms may be nested to provide extra functionality.
Besides the newt library, this package provides whiptail, which may
be used from shell scripts similarly to Savio Lam's "dialog". Newt
provides the textual interface for the Red Hat and Debian boot
disks.
This package contains the python bindings for newt.
* Fix server crash when header too large.
* Add --require (-r) option to require a library before executing your
script.
* Rename --rackup short option to -R, warn and load as rackup when file
ends with .ru.
* List supported adapters in command usage.
* Add file adapter to built-in adapter, serve static files in current
directory.
* Allow disabling signal handling in Server with :signals => false
* Make Server.new arguments more flexible, can now specify any of host,
port, app or hash options.
* Add --backend option to specified which backend to use.
* Serve static file only on GET and HEAD requests in Rails adapter.
* Add threaded option to run server in threaded mode; calling the
application in a thread allowing for concurrency in the Rack adapter.
* Guess which adapter to use from directory (chdir option) or use
specified one in 'adapter' option.
databases/ruby-sequel as of version 1.4.0.
+ Update dependencies for www/thoth and www/merb-sequel to reflect
removal of ruby-sequel-model -- use ruby-sequel instead. Bump the
PKGREVISION for these two packages.
+ Add patch-aa and patch-ab which are changes pulled from upstream to
allow the creation of new records that don't have a primary key when
the cache is on.
* Merge ``sequel_model'' into ``sequel''.
* Eager loading for all types of associations.
* One-to-many associations now populate the corresponding many-to-one
instance variable (even when eagerly loaded).
* ActiveRecord style has_many :through associations are now supported
via many_to_many. many_to_many will no longer select the entire result
set, just the columns of the associated table (and not the join table),
so it works for both has_and_belongs_to_many (simple join table) and
has_many :through (join table model) scenarios.
- Added support for chaining modules within the version client library.
To use this, specify the module string as a list of modules separated
with commas. For example:
cvm-command:/path/to/module,cvm-local:/path/to/socket
This enhancement deprecates the cvm-chain module.
- Introduced an "out of scope" fact, to be used on credential rejection
results when the supplied credentials are outside of the scope of
authority of the module. The cvm-vmailmgr and cvm-qmail modules
report this fact as appropriate, and cvm-chain copies it as
appropriate from the modules it invokes.
- A random anti-spoofing tag is added to all version 2 client requests.
Its length is set by $CVM_RANDOM_BYTES and defaults to 8.
- Fixed a bug that caused the domain output to be set incorrectly when
doing qmail lookups with a domain not in the control files with
$CVM_QMAIL_ASSUME_LOCAL set.
tomoe-gtk is a GUI library for tomoe that online handwriting recognition engine.
It offers GTK+ GUI parts and is useful for making another applications using
tomoe.
Tomoe is originally a handwriting character recognition engine.
Current Tomoe does not only provide handwriting recognition engine but also
provide other character searching API such as searching by readings, stroke
counts, radicals, valiations and so on.
* Gem.prefix now returns non-nil only when RubyGems was installed outside
sitelibdir or libdir.
* The `gem server` gem list now correctly links to gem details.
* `gem update --system` now passes --no-format-executable to setup.rb.
* Gem::SourceIndex#refresh! now works with multiple gem repositories.
* Downloaded gems now go into --install-dir's cache directory.
* Various fixes to downloading gem metadata.
* `gem install --force` now ignores network errors too.
* `gem pristine` now rebuilds extensions.
* `gem update --system` now works on virgin Apple ruby.
* Gem::RemoteFetcher handles Errno::ECONNABORTED.
in turn depends on glib2!
Additionally, disable fam support entirely on HP-UX, because it uses
gamin as the default fam type and sysutils/fam lacks platform support.
* Handle a potential DOS vulnerability on any host using TMail to
handle incomming email; a crafted email with carefully positioned
whitespace can cause the TMail library to go into an endless loop
causing denial of service attack on email services.
Changes
- The vim merger has been improved and now uses diff3 to merge
non-conflict changes automatically before executing vimdiff.
- Values used with the --depth option used to control recursion with
node and path restrictions have changed. Using --depth=0 now means
exactly the specified directories and *not* their children. Using
--depth=1 now means the specified directories and their immediate
children. Previously --depth=0 included children and --depth=1
included grandchildren and it was not possible to exclude children
using --depth. The simple fix for anyone using --depth is to add 1 to
the values they are using.
- Document that ssh: and file: sync transports are not supported on
native Win32.
Bugs fixed
- `commit' now uses keydir specified in _MTN/options
- duplicate name conflicts now show a proper error message, even if
a parent directory got renamed as well. In that case, the error
message now shows both names for the directory and the offending
file name.
New features
- The bare parent selector 'p:' can now be used in a workspace to
query the parent(s) of the workspace' base revision. This is
equivalent to "mtn au select p:`mtn au get_base_workspace_revision`".
- push, pull, and sync can be run with a single argument, which looks
like
mtn://hostname?include_pattenr/-exclude_pattern
or
mtn://hostname?include=include_pattern/exclude=exclude_pattern
Internal
- Update Botan to 1.7.4.
- Usage of the internal app_state object has been reduced, objects
are better encapsulated now. The database interface has been
enhanced to ease reduction of locking contention in the future.
- Merged the two indexes on revision_certs into a single one.
- The database schema has been changed so that it now stores
binary SHA1 hashes rather than their hexadecimal encoding,
in most places where these are used. This reduces the
database size and speeds up operations a little.
Users who like to fiddle with the database directly are
advised to use the sqlite functions hex() and quote() to
print columns that store hashes (including IDs), and the
hexadecimal literal notation x'DEADBEEF' to input them.
- Binary SHA1 hashes are also used for most in-memory
processing, avoiding conversions and saving memory.
This JavaScript editing mode supports:
- the full JavaScript language through version 1.7
- accurate syntax highlighting using a recursive-descent parser
- syntax-error and strict-mode warning reporting
- "bouncing" line indentation to choose among alternate indentation points
- smart line-wrapping within comments and strings
- code folding:
- show some or all function bodies as {...}
- show some or all block comments as /*...*/
- context-sensitive menu bar and popup menus
- typing helpers (e.g. inserting matching braces/parens)
- many customization options