DISCONTINUED: [8WR] XenUtiles (Tools)

DISCONTINUED: [8WR] XenUtiles (Tools) 1.2.2

No permission to download
Hi Jaxel,

I love both medio and utiles. Thank you for writing both, as they are both very helpful to our nonprofit.

I think Google Webmaster Tools may have found a bug with sitemaps of media files. Specifically, GWT throws the following error:
Error: Invalid URL
Text: This is not a valid URL. Please correct it and resubmit.
URL: {scriptjs}/player.swf?file=http://www.domainname.org/forum/dat...e&plugins=revolt-1&controlbar.position=bottom
Parent tag: video
Tag: Player_loc
As you may guess from the above error URL, I've purchased the basic premium expansion pack for XenMedio. The media plays fine, though, so I'm posting in the Utiles thread, as it seems to be a sitemap issue. I would hypothesize that {scriptjs} is the problem.

The full XML from the sitemap is:
HTML:
<url>
<loc>http://www.domainname.org/forum/media/september-15th-webinar-with-peter-zafirides-md.65/</loc>
<video:video>
<video:thumbnail_loc>http://www.domainname.org/forum/data/media/65.jpg</video:thumbnail_loc>
<video:title>September 15th Webinar with Peter Zafirides, MD</video:title><video:description>ZafiridesWebinar120915.mp3</video:description>
<video:player_loc allow_embed="yes">{scriptjs}/player.swf?file=http://www.domainname.org/forum/data/local/filename.mp3&skin={scriptjs}/audio.xml&autostart=true&plugins=revolt-1&controlbar.position=bottom</video:player_loc>
<video:duration>3600</video:duration>
<video:view_count>16</video:view_count><video:publication_date>2013-02-03T16:22:23+00:00</video:publication_date>
<video:tag info="http://www.domainname.org/forum/media_keyword/"/>
<video:category info="http://www.domainname.org/forum/media_category/">TMS Webinars, hosted by the PTPN</video:category>
<video:uploader info="http://www.domainname.org/forum/members/forest.6/">Forest</video:uploader>
</video:video></url>

Any help would be much appreciated!
 
If anyone can offer any help on this, it would certainly be appreciated. We rely heavily on Google for new traffic, so it makes me nervous to see errors in Google Webmaster Tools.

Unfortunately, I'm at a bit of a loss as to what to do. I'm not a XenForo developer (I learned to program decades ago and I've never worked with OOP or MVC). Nonetheless, I poked around the code to find what I could find. Any help would be appreciated.

I'm using version 1.2.2 with the Premium required expansion. Of note is that the error only occurs with locally hosted media, something that is enabled via the premium required expansion. I guess that if I can't figure it out here, the next step will be to move that thread.

Here's what I've found:

From public_html/forum/library/EWRutiles/Model/Sitemap.php
Code:
    public function buildMedia()
    {
        $paths = array();
        $count = $this->getModelFromCache('EWRmedio_Model_Lists')->getMediaCount();
        $limit = XenForo_Application::get('options')->EWRutiles_sitemap_limit / 10;
        $loops = 1;
 
        for ($offset = 0; $offset <= $count; $offset += $limit)
        {
            [B]$medias = $this->getModelFromCache('EWRmedio_Model_Lists')->getMediaList($loops, $limit, 'date', 'ASC');[/B]
            list($document, $sub_node) = $this->addDocument('urlset', array('video' => true));
 
            [B]foreach ($medias AS $media)[/B]
            {
                [B]$this->addVideo($document, $sub_node, $media);[/B]
            }
 
            $paths[] = $this->saveFile($document, 'media', $loops++);
        }
 
        return $paths;
    }
 
public function addVideo(&$document, &$sub_node, $media)
    {
<snip>
              if ($media['service_movie'] == 'null')
                {
                    $vid_node->appendChild($document->createElement('video:content_loc', htmlspecialchars($media['content_loc'])));
                }
                else
                {
                    $vid_node->appendChild($ply_node = $document->createElement('video:player_loc', htmlspecialchars($media['service_movie'])));
                        $ply_node->appendChild($emb_node = $document->createAttribute('allow_embed'));
                            $emb_node->appendChild($document->createTextNode('yes'));
                }
<snip>
        return true;
    }


From /public_html/forum/library/EWRmedio/Model/Lists.php:
Code:
    public function getMediaList($start, $stop, $sort = 'date', $order = 'DESC', $type = null, $where = null, $local = false)
    {
        switch ($type)
        {
            case "category":    $onlyWhere = "WHERE EWRmedio_media.category_id = ".$where;        break;
            case "user":        $onlyWhere = "WHERE EWRmedio_media.user_id = ".$where;            break;
            case "service":        $onlyWhere = "WHERE EWRmedio_media.service_id = ".$where;        break;
            case "keyword":        $onlyWhere = "LEFT JOIN EWRmedio_keylinks ON (EWRmedio_keylinks.media_id = EWRmedio_media.media_id)
                                    LEFT JOIN EWRmedio_keywords ON (EWRmedio_keywords.keyword_id = EWRmedio_keylinks.keyword_id)
                                    WHERE EWRmedio_keywords.keyword_id = ".$where;                break;
            default:            $onlyWhere = "WHERE EWRmedio_media.media_state = 'visible'";    break;
        }
 
        if ($local)
        {
            $local = "AND EWRmedio_services.service_feed = 'null'";
        }
 
        $start = ($start - 1) * $stop;
        if ($sort == "popular")
        {
            $orderBy = 'EWRmedio_media.media_comments DESC, EWRmedio_media.media_likes DESC, EWRmedio_media.media_views DESC';
        }
        else
        {
            $orderBy = 'EWRmedio_media.media_'.$sort.' '.$order;
        }
 
        $medias = $this->_getDb()->fetchAll("
            SELECT EWRmedio_media.*, EWRmedio_categories.*, EWRmedio_services.*, xf_user.*,
                EWRmedio_media.service_value2 AS service_value2,
                IF(NOT ISNULL(xf_user.user_id), xf_user.username, EWRmedio_media.username) AS username
                FROM EWRmedio_media
                LEFT JOIN EWRmedio_categories ON (EWRmedio_categories.category_id = EWRmedio_media.category_id)
                LEFT JOIN EWRmedio_services ON (EWRmedio_services.service_id = EWRmedio_media.service_id)
                LEFT JOIN xf_user ON (xf_user.user_id = EWRmedio_media.user_id)
            $onlyWhere
            $local
                AND EWRmedio_media.media_state = 'visible'
            ORDER BY $orderBy, EWRmedio_media.media_date DESC, EWRmedio_media.media_id DESC
            LIMIT ?, ?
        ", array($start, $stop));
 
        foreach ($medias AS &$media)
        {
            [B]$media = $this->getModelFromCache('EWRmedio_Model_Parser')->parseReplace($media);[/B]
            $media = $this->getModelFromCache('EWRmedio_Model_Media')->getDuration($media);
        }
 
        return $medias;
    }
 
To those who will come after me, wondering how to disable these emails. I believe if you set the "Unconfirmed Cutoff" to zero in the XenUtiles settings they will stop.
 
@Jaxel: Please consider adding a line to the registration log that identifies which Q&A question that the bots correctly answered.

Of course, it would only work for the folks that have done the template edit, but it would be helpful nonetheless.
 
Is anyone getting this error when trying to set up a new user?:

Qkj6ZIc.png
 
Yes. When no user registered within 24 hours on my website, found some insane errors and to quickly get rid of this I had to disable xenutils.
 
Is there any way to get the downvotes drop box to match the theme so it is the same look as the thread tools drop down box?
+1
Gave this a test run a while back and turned it off straight away as it doesn't fit into the style/theme properly and looks 'outta whack'.
Also, unsure if it's just me, but once you've performed a DownVote yourself, the display doesn't change, and thus it's not obvious that you've already voted ... can this be enhanced?
 
Hi, My forum has thousands of bogus registrations. They aren't post spamming but I suppose just using it for profile spam. I just downloaded this xenutiles tool to see if it would help, but using the interface to ban accounts would take AGES. Would it be possible to add a "select all" feature on the page which shows list of account spam and profile spam?
 
These daily emails are annoying the hell out of me :)

How do you turn off the notification emails?

I have no real need to receive dozens of emails every week telling me who registered etc. I'm happy to check this information periodically in my own time.

you could set a gmail filter to delete them
 
I really need a bulk processing tool! Is there some way for be to run a query to bulk ban everyone in this list? Nearly 2000 entries. too much work to process manually.

bulk.webp
 
Hi, My forum has thousands of bogus registrations. They aren't post spamming but I suppose just using it for profile spam. I just downloaded this xenutiles tool to see if it would help, but using the interface to ban accounts would take AGES. Would it be possible to add a "select all" feature on the page which shows list of account spam and profile spam?
The spam management component of XenUtiles is designed to be automatic. It leverages multiple spam blocking databases/communities, and with a little bit of work (registering on the various sites to set up your API key) can automatically block spammers from registering, so that you don't have to do anything!
Unfortunately for us, the spam management component of the XenUtiles addon breaks, every time we install or upgrade any other addon, requiring us to re-upgrade the XenUtiles add-on. Whilst it's working though, it's brilliant!
Have a look at the Options for XenUtiles in your ACP, it should explain where you need to go to get your spam database API keys etc.
 
I really need a bulk processing tool! Is there some way for be to run a query to bulk ban everyone in this list? Nearly 2000 entries. too much work to process manually.

View attachment 41056

If you ban everyone, you'll be banning members with youtube links and facebook links as well. You need to go through each page and verify that all of them are spammers first. You'll find many legit members with links in their profiles. The good thing is you only have to do this once. Once you get all of them cleaned, you wont have to go back as far, as most your spammers you will see on your first page of this profile spam link page.
 
Lots of this error:


Zend_Db_Statement_Mysqli_Exception: Mysqli statement execute error : Duplicate entry '49171-67510' for key 'UNIQUE' - library/Zend/Db/Statement/Mysqli.php:214
Generated By: Hacks, Today at 8:35 PM
Stack Trace
#0 /home/site.com/public_html/library/Zend/Db/Statement.php(297): Zend_Db_Statement_Mysqli->_execute(Array)
#1 /home/site.com/public_html/library/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 /home/site.com/public_html/library/Zend/Db/Adapter/Abstract.php(574): Zend_Db_Adapter_Abstract->query('INSERT INTO `EW...', Array)
#3 /home/site.com/public_html/library/XenForo/DataWriter.php(1591): Zend_Db_Adapter_Abstract->insert('EWRutiles_downv...', Array)
#4 /home/site.com/public_html/library/XenForo/DataWriter.php(1580): XenForo_DataWriter->_insert()
#5 /home/site.com/public_html/library/XenForo/DataWriter.php(1381): XenForo_DataWriter->_save()
#6 /home/site.com/public_html/library/EWRutiles/Model/DownVotes.php(118): XenForo_DataWriter->save()
#7 /home/site.com/public_html/library/EWRutiles/ControllerPublic/Thread.php(47): EWRutiles_Model_DownVotes->updateVote(Array)
#8 /home/site.com/public_html/library/XenForo/FrontController.php(310): EWRutiles_ControllerPublic_Thread->actionDownVote()
#9 /home/site.com/public_html/library/XenForo/FrontController.php(132): XenForo_FrontController->dispatch(Object(XenForo_RouteMatch))
#10 /home/site.com/public_html/index.php(21): XenForo_FrontController->run()
#11 {main}
Request State
array(3) {
["url"] => string(85) "http://www.site.com/threads/web-trick-and-dial-trick-march-12-2013.49171/downvote"
["_GET"] => array(0) {
}
["_POST"] => array(3) {
["_xfToken"] => string(57) "67510,1363091389,6d59c8f29664671a4dc36bb158b0b8da2c6ce17e"
["clientAction"] => string(9) "533.click"
["vote_id"] => string(0) ""
}
}
 
Getting this error, when I run the upgrade:

Mysqli statement execute error : Table 'user_xendb1.EWRutiles_spamlogs' doesn't exist

Zend_Db_Statement_Mysqli->_execute() in Zend/Db/Statement.php at line 297
Zend_Db_Statement->execute() in Zend/Db/Adapter/Abstract.php at line 479
Zend_Db_Adapter_Abstract->query() in Zend/Db/Adapter/Abstract.php at line 753
Zend_Db_Adapter_Abstract->fetchRow() in EWRutiles/Install.php at line 124
EWRutiles_Install::addColumnIfNotExist() in EWRutiles/Install.php at line 83
EWRutiles_Install->_install_22() in EWRutiles/Install.php at line 41
EWRutiles_Install::installCode()
call_user_func() in XenForo/Model/AddOn.php at line 214
XenForo_Model_AddOn->installAddOnXml() in XenForo/Model/AddOn.php at line 169
XenForo_Model_AddOn->installAddOnXmlFromFile() in XenForo/ControllerAdmin/AddOn.php at line 212
XenForo_ControllerAdmin_AddOn->actionUpgrade() in XenForo/FrontController.php at line 310
XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 132
XenForo_FrontController->run() in /home/user/public_html/admin.php at line 13
 
Getting this error, when I run the upgrade:

Mysqli statement execute error : Table 'user_xendb1.EWRutiles_spamlogs' doesn't exist

Zend_Db_Statement_Mysqli->_execute() in Zend/Db/Statement.php at line 297
Zend_Db_Statement->execute() in Zend/Db/Adapter/Abstract.php at line 479
Zend_Db_Adapter_Abstract->query() in Zend/Db/Adapter/Abstract.php at line 753
Zend_Db_Adapter_Abstract->fetchRow() in EWRutiles/Install.php at line 124
EWRutiles_Install::addColumnIfNotExist() in EWRutiles/Install.php at line 83
EWRutiles_Install->_install_22() in EWRutiles/Install.php at line 41
EWRutiles_Install::installCode()
call_user_func() in XenForo/Model/AddOn.php at line 214
XenForo_Model_AddOn->installAddOnXml() in XenForo/Model/AddOn.php at line 169
XenForo_Model_AddOn->installAddOnXmlFromFile() in XenForo/ControllerAdmin/AddOn.php at line 212
XenForo_ControllerAdmin_AddOn->actionUpgrade() in XenForo/FrontController.php at line 310
XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 132
XenForo_FrontController->run() in /home/user/public_html/admin.php at line 13

Already answered here:
http://xenforo.com/community/threads/8wayrun-com-xenutiles-tools.26860/page-13#post-462189

Unistall XenUtiles completely and then reinstall it. Tell me if you still have the issue.
 
Top Bottom