Building several Drupal modules in my workplace, would like to contribute them to the community and get feedback for them as well.
The main project I'm currently working on is a module to allow the export of books in various document formats, epub being the main one, but also including DTBooks ( DAISY digital talking books, for use in systems used by those with forms of visual disability ).
ongoing goals include outputing .pdf, and allowing the parsing of html(inc. word html)/xhtml into books.
I've also created a small module to enhance the use of context help.
These have been built for drupal 6
| Comment | File | Size | Author |
|---|---|---|---|
| #35 | freetts0.9.zip | 7.01 KB | verbosity |
| #33 | freetts0.86.zip | 10.1 KB | verbosity |
| #28 | freetts0.85.zip | 11.18 KB | verbosity |
| #27 | freetts0.8.zip | 11.06 KB | verbosity |
| #25 | Freetts0.7.zip | 11.24 KB | verbosity |
Comments
Comment #1
verbosity commentedJust as an update ( apologies maybe I should've waited till my module was nearly finished, there should be something functional to show by friday.
my main focus is a module ( or possibly more than one), that converts drupal books into ereader friendly formats ( specifically epub and DTBooks ) I shall have a (semi)functional version of this within a day or so.
In the last day I've also realised that I'll also need to build an additional module (originally conceived as being included in the epub module), wich will take several formats of documents ( html, word, epub, DTBook etc) and convert them into books.
for clarification, I use book in the book module sense and hope in both cases that the structure will be kept and there will be a good level of semantic-ness to these conversions.
I don't expect the status to be changed, but have to admit I didn't read the instructions properly before applying.
Comment #2
verbosity commentedPlease find attached the first draft of the epub module.
While this is functional this is an early draft and probably breaks a few coding standards ( as well I'm sure rules for file management ), although that is partly the reason for me applying ( to get some feedback + possibly assistance ).
install Instructions:
extract the zip and copy the module to your sites module directory. copy the epub_files folder ( and contents ) to the base dir of your drupal site.
instructions for use:
This module is a plug-in for book, it supplies a link at the bottom of each book node which upon clicking creates an epub document.
epub is the standard format for many ebook readers. the book page must be plain text or filtered html.
Issues ( things I'm aware of and am already working on):
1. files probably created/placed/kept in a bad place.
2. page that is displayed after creation is a debug page
3. no link provided ( some sort of a list of these files is needed to allow easy download)
TODO's:
all the issues listed above,
add DTBook support ( similar format to epub for ereaders designed for those with visual disabilities)
probably other stuff that I"m not aware of.
-----------------------------------------------------------------------
what is the epub module?
Currently drupal has systems for exporting books ( and book nodes) to html ( printer friendly ) and pdf. formats. But there are many other formats that are available and used both on standard computing devices as well as mobile platforms, ereaders and devices for those with accessibility issues.
I was tasked to create a system to easily create epub format documents, and this was extended to DTBooks since the formats are similar.
how does this compare to other modules?
While drupal can create html and .pdf format documents there is currently no core or contrib features that support epub or DTBook.
How does the epub module work?
simply put, the epub module collects the nodes in a book, organises them and packages them up in an epub file. This functionality can be tested in the current module and the resultant file can be viewed in any supporting ereader ( firefox also has a plug-in for viewing this)
-----------------------------------------------------------------------
My motivation:
I've recently been employed to work with drupal systems, and have created a few 'mods' for drupal modules, and would like to offer what I have done/will do to the community. CVS access isn't something that interests me in itself, but the ability to post my module(s) for feedback/use by others is something important to me.
Comment #3
verbosity commentedComment #4
verbosity commentedoops wrong one, sry
Comment #5
joachim commentedHi.
Thanks for your application.
There is an existing ePub module here: http://drupal.org/project/epub
Project duplication is something we avoid in Drupal. Could you investigate this module to see if and how it differs from yours? You are encouraged to work with existing projects rather than create projects that duplicate functionality.
Comment #6
verbosity commentedHi,
When I started to do this module I did a search and came up with no results ( the epub project was not published at that time), hence my belief that there was no other module.
I'll be happy to check out the module you mentioned and work within it if at all possible.
Comment #7
verbosity commentedhaving no module to submit I currently have no need of cvs access.
Comment #8
verbosity commentedre-opening my case, i hope to detail my reasons below.
1. My module publishes to DTBooks format as well as Epub
2. IMCE based image support where included
3. fully integral system, no need for additional modules / libraries
In addition to that, I have tried to contact the maintainer to talk to them about their module and got no response also I posted a bug for the said module ( because it does not work - it does not actually create epub documents ), and that has not been replied to either.
My module has improved significantly since I last posted it, I hope to have something more 'finished' byt the end of the week. However, here is a more up to date 'development' version.
To be honest I have no real want of CVS access ( though the ability to make the code I've written is nice, as would the ability to create project pages), But I'm developing this for my work anyway, and I believe it to be a better module ( though I accept that I'm biased)
Comment #9
joachim commented> In addition to that, I have tried to contact the maintainer to talk to them about their module and got no response also I posted a bug for the said module ( because it does not work - it does not actually create epub documents ), and that has not been replied to either.
Could you post the link to that issue please? It doesn't look like that module has been abandoned -- last commit was 2 weeks ago. Maybe give the maintainer a bit more time to respond?
Comment #10
verbosity commentedhttp://drupal.org/node/894320
Sometimes I don't come across as I intend, It was not my intention to be disparaging toward the other module, and I didn't suggest that the module had been abandoned.
Maybe give the maintainer a bit more time to respond?
I'm afraid my development is work related, and as such I have a deadline to meet, hence why my development of this has continued ( and will continue... )
Comment #11
avpadernoHello, and thanks for applying for a CVS account.
I would not call abandoned a project that have been created on August 18; if the maintainer is not replying is because he is probably in vacation.
I am not sure I understand the purpose of this CVS application; is it to add a new module in Drupal.org repository, or to become co-maintainer of an existing project?
Comment #12
Everett Zufelt commentedI am quite interested in the ability to export as DAISY. Can you please provide some more detail about type and version of DAISY supported?
Thanks
Comment #13
joachim commented> I am not sure I understand the purpose of this CVS application; is it to add a new module in Drupal.org repository, or to become co-maintainer of an existing project?
That depends on what the other module maintainer replies!
Comment #14
joachim commented> Sometimes I don't come across as I intend, It was not my intention to be disparaging toward the other module, and I didn't suggest that the module had been abandoned.
@verbosity: that's maybe not the best way to have started communication with the other module's maintainer... also, file one issue per problem. So one for the crash ;) and one to discuss merging your work.
Comment #15
avpadernoComment #16
verbosity commented@Everett Zufelt
I'm having a little difficulty to get a functioning DAISY document yet ( it's almost there, but not quite ), my goal is to be be able to output both DAISY 2 (2.02 I believe ) and DAISY 3. I should have an update to my work that includes DAISY in a day or two. These wont by default include text to speech ( however if I can find something to plug in that might do the job I'd have a look at it ), however DAISY3 documents will be able to incorporate associated audio files ( and possibly support recording of files). At the moment I'm at the stage where I have code that is generating DAISY documents, but I'm unable to test them at work so development is a little slower than I would like.
@joachim
I have also sent a message to the modules maintainer. however I'm building my own module as it stands anyway ( its for work, and I therefore have a fixed set of goals and a time constraint ), though I would be willing to put my code to work in the existing module if the maintainer was willing.
Edited to expand on the reply to Everett.
Comment #17
avpadernoThe call to
t()is not correct; the string is not using any placeholders contained in the second argument.The query should use placeholders.
The comments don't follow the format reported in the coding standards, and contains some typos.
The title should start with a capitalized word, and end with a period.
Modules that are included in Drupal.org repository are licensed under the same license used by Drupal; any reference to the license should be avoided, inside the code.
I am not sure what you mean by other wise copyright IRISS.
To what is that path supposed to point?
Use
db_query()-placeholders; for queries that needs to limit the number of returned rows, there is a specific Drupal function.Comment #18
verbosity commentedthanks for the feedback,
a couple of specific comments in regards to it.
7. noted, I'll remove the licence comment, IRISS is the charity I work for, however its not a problem to remove that note.
11. removed or moved? would it be acceptable for it to default into the /site/files directory? I plan to integrate file management into Drupal as far as i possibly can( on my todo )
12. agreed
most of the other comments were helpful and I'll work in improving the code to get it up to standard. Its worth pointing out that I'm still spending quite a bit of time working on this daily and my goal has been functionality rather meting the coding standards, however it is my intention to meet the coding standards.
Lastly apologies for changing the tags in my last post, no idea how I managed that.
Comment #19
avpadernoStating that the code is copyrighted by an organization could create other issues; are you authorized to public on Drupal.org code that is copyrighted from your employer? As far as I recall, code developed by an employee during his work is owned by the employer.
I didn't check the content of the archive, but files that are available from third-party sites should not be committed in Drupal.org repository.
There is no reason to apologize for changing the issue tags; you could not know they are used from CVS maintainers when reviewing CVS applications.
Comment #20
verbosity commented1. as stated above the copyright text will be removed, I have checked and this is not an issue with my employer.
2. the contents of the archive are simply a couple of txt documents needed ( has no third party content), they are there to simplify the epub document creation process ( epub documents use a zip wrapper). However I shall remove these and implement their creation in code.
3. no, I will be happy to do so. I did contact the maintainer of the epub module, but have not yet got a reply.
Comment #21
verbosity commentedOk as a follow up ( been thinking over this for the last few hours ).
I'm going to close my application for the moment, but open it with a smaller modified module for the purpose of producing DAISY documents, thus not duplicating the work done by others ( from what I've seen of the curent epub module this wouldn't be the easiest task and wouldn't have much crossover).
Comment #22
verbosity commentedTo reduce confusion between the module I've created and the extant one I'm going to call my module epublisher from here on in.
reopening my application on the following basis:
1. Issues in the current epub module are not being dealt with which my epublisher module does not have.
2. extended functionality, epublisher will attempt to turn any node into a document when requested.
3. CSS and image support for valid documents.
4. the ability to add audio to DAISY when available.
the epublisher module includes checkboxs for all content types, to enable the content types to have the option to be exported, and dependant on this each piece of content has a checkbox to allow its export to EPUB /DAISY, in addition epublisher has been given additional controls over how, and when an EPUB/DAISY Document is created:
on download -
on create/edit -
on cron -
I expect to have a more fully functional module for review in the next few days, though I do not expect this to pass the review stage.
In addition to that I'm working on a couple of modules to incorporate TTS ( Text to speech ) systems into drupal, the first, a rather small module to allow integration with yakitome should also be ready for review shortly.
Comment #23
baaj commentedIs your module released somewhere? I can't find it anywhere.
I'd love to give it a try. Thanks!
Comment #24
verbosity commentedHi,
@baaj the epublisher module is not currently released, I hope to have it released shortly.
In regards to my own post in #22 I decided against working with yakitome for various reasons. I have continued to work on TTS in order to be able to create fully fledged DAISY documents.
To that end I've developed the attached module Freetts.
The Freetts module provides text to speech functionality by taking the body text of a node and converting it into an .mp3 file via use of Java FreeTTS scripts running either locally or on a remote machine. LAME is also needed on the same machine as the FreeTTS system to facilitate conversion from .wav format to .mp3. MBrola support is included to allow additional voices and to support additional languages.
The creation of the audio file can be triggered via a provided link on the node page or via an option on the node add/edit form.
Comment #25
verbosity commentedComment #26
verbosity commentedimproved version :
Includes a couple of minor fixes, some additional security checks and error reporting.
Comment #27
verbosity commentedImproved version:
I believe this version is a complete and final version.
Comment #28
verbosity commentedUpdated version.
added error handling and admin checking
Comment #29
verbosity commentedRealised I hadn't written a proper blurb for the freetts module here it is.
Freetts is a an interface to allow communication with either a remote or local installation of the Java based FreeTTS system.
Who is this module for
Drupal sites that want to provide the text content of nodes in a downloadable audio format, primarily as an mp3
How does it work
When a node is created / edited there is an option to create / re-create an audio file. Additionally there is a link beneath each node to allow this creation.
Once the creation of audio content is triggered, the system formats the data and sends it off to the system where FreeTTS creates a wav file and lame converts it into mp3. the freetts module downloads it and makes it available as a download on the node page.
Installation
install FreeTTS and LAME on the choosen machine.
copy the remote php files to a web available directory.
Optionally install MBrola and a MBrola voice ( allows for higher quality/ alternative or non-english voices) to the FreeTTS machine.
install and enable the FreeTTS module as you would anyother Drupal module
Configure the freetts admin settings
Other Similar modules:
Dixerit embeds a web-based TTS service and streams the audio over the web
Differencies: freetts downloads the audio allowing for podcasting abilities, the ability to create albums etc.
Motivation:
I had a need to create audio files easily in order to create full DAISY files for the epublisher module.
Further development possibilities:
a further developed api for FreeTTS LAME and MBrola
integration of similar TTs systems ( Festival )
Greater File management capabilities and options
Comment #30
brianV commentedSome further notes:
$test_row['ttsid']!=''should be$test_row['ttsid'] != ''Comment #31
verbosity commentedhi,
Firstly thank for reviewing my module and thanks for the feedback, quite a few things I missed eh?
1,2,3,6,7 noted I'll make the changes
4. noted and I'm happy to remove it, however Id rather keep it in place for now ( until it gets accepted) it helps me keep track in my local development environment , though if this is a block then I'll remove it.
8. Thanks, I'll remove the commented code,
9. good catch, silly of me to have missed that.
10. no reason there shouldn't be a rename. personally I call stuff by non-standardish names, that way its harder to find them, for the same reason user_key and user_ssid are called what they are. freetts_config.php is pretty good though
11. for the record I did pass my module through coder, several times, its a fairly standard part of my testing cycle now. In saying that a couple of the files weren't checked
Comment #32
brianV commentedre #4: This isn't a blocker - that was more of a 'best practice' suggestion.
re #10: I wouldn't call this a blocker necessarily either, provided it si very clearly documented. However, it's not the most usable either, and tough for a user to search for and find if they don't have the README.txt immediately available either.
Comment #33
verbosity commentedok I've made all the changes.
I admit I've still got a bit of work on the documentation even in this version, but at least the one real new function is documented.
Edit: I hadn't noticed brianV's post above, however I've made the changes that had been pointed out in points 4. and 10.
Comment #34
brianV commentedLooks much better! A few more notes:
Comment #35
verbosity commentedagain all changes made, I hope this counts as good to go :)
Comment #36
brianV commentedI think this looks great now.
Comment #37
avpadernoWelcome on board!
Comment #40
avpaderno