This project is read-only.

What is the "YQL" button for?

Topics: General Chatter, Help / Support
Apr 27, 2015 at 10:09 AM
Thanks for making this tool! I am mainly using it to make a monthly report of interesting posts from throughout our company's Yammer groups. Yamster helps by allowing me to sort the messages by # likes and # replies.

I am curious about the button "YQL" on the Search tab that shows some XML codes. What is this for? Can I use it to make queries?
Apr 28, 2015 at 9:08 AM
Edited Apr 28, 2015 at 9:09 AM
"YQL" stands for Yamster Query Language. :-)

Image

Currently YQL is only used behind the scenes on the "Views" tab to define queries such as as "Sent By Me", "Starred Yams", etc. If you are interested, you can take a look at the SetupQueries() method in ViewsScreen.cs. The original intent was to avoid manually coding incremental updates for each query, instead doing it in a general way by analyzing the expression.

However, the obvious next step would be to allow users to define their own views, perhaps using XML, perhaps based on a search (similar to the "Saved Search" feature in some mail clients). The "YQL" button is a prototype of how that might look. The implementation is currently unfinished, but wouldn't be a lot of work if people see value in it. Thanks for asking!
Marked as answer by pgonzal on 4/11/2016 at 12:49 AM
May 15, 2015 at 8:03 AM
Thanks vey much such great effort, is delete message option can be perform against it is very much needed
May 17, 2015 at 8:02 AM
Hi yayh,

About the delete message feature, could you explain your request in more detail? For example:
  1. You are using Yamster for reading, and you want Yamster's sync to recognize if a person deleted a message and remove it from view.
  2. You are using Yamster to write messages, and you want a command to delete a message that you wrote.
  3. You using the Yamster command line or API, and you just want an API function to automate deleting of messages.
(These are somewhat different work items.) Thanks!
May 17, 2015 at 9:22 AM
3- we just want an API function to automate deleting of messages because yammer do not provide away to blank yammer network if we just want to start from scratch
May 18, 2015 at 8:20 AM
Are you a "verified admin" for your Yammer network? (This requires a paid license for Yammer.) Without the "verified admin" permission, I think the REST API only allows you to delete messages that were posted by yourself.
May 18, 2015 at 8:25 AM
yes we are a verified admin before users were using free yammer network and now we upgraded to yammer enterprise

Thanks,
May 18, 2015 at 8:56 PM
can I request to communicate with you on private we have urgent request
May 18, 2015 at 11:45 PM
Hi yayh, if you have an urgent request, you should contact Yammer support for help. I don't work for Yammer, and I don't know their policy regarding your situation. They might recommend a better solution.

I am happy to implement the "delete" command that you suggested for Yamster, if it is not too much work. However, I don't offer any guarantees or support for Yamster, and I can't commit to any deadlines. This is a personal project, and I don't get paid to work on it. Thanks!
May 19, 2015 at 4:58 AM
Hi pgonzal,

I'm sorry if you were offended, you have done great effort and we would like to be part of that by driving more options to your software and keep it open source

MS / yammer support will not offer bulk message deletion option and they redirect us to use yammer API and build you own script or check developer community for similar script.

If Donations is their we will be among the first to participate

Thanks very much for follow up

Yousef
May 19, 2015 at 10:15 PM
No problem. Give me a day to investigate whether your issue can be solved by running Yamster from a verified admin account. If so, I can implement it.
May 20, 2015 at 9:07 AM
Hi Yousef,

I have implemented a prototype that adds a "Delete" hyperlink in the Yamster application (next to the "Like" and "Reply" links). In this prototype, the message will show as "[DELETED]" rather than disappearing, however it will be correctly deleted from Yammer's web site. Unfortunately I am still working on setting up a test environment, so I cannot test it yet. Could you test it for me?

If you are a developer, you can clone the Git repository, and then use Visual Studio to compile Yamster-Win32.sln, specifying the "Debug" build configuration. Otherwise, here is a prebuilt binary:

YamsterPrototype-2015-05-20.zip

Instructions:
  1. From the Yammer web page, post some messages using a normal user account (who is not "verified admin")
  2. Run Yamster on a clean PC (or delete your data folder)
  3. Login to Yamster using the "verified admin" account, and sync some groups
  4. Try clicking "Delete" on a message that was posted by the non-admin user in step 1. Let me know if it works, or if you get an error message.
If this works, then it should be pretty easy to implement a YamsterCmd option for performing bulk deletes.
May 20, 2015 at 10:57 AM
Worked like charm :) !

I have seen the below error messages but if I retry it is fine

error1

error2

thump up for Yamster looking forward for bulk deletion

Thanks,
Yousef
May 20, 2015 at 6:51 PM
Edited May 20, 2015 at 6:53 PM
That's great! Don't worry about those errors, they are because the sync engine doesn't recognize deletes yet.

What criteria should we use to specify the messages to delete? For regular Yammer groups, you can just delete the entire group, right? So are we only concerned with messages in the "All Company" group?

Do you want to delete all messages in "All Company"? Or do you want to manually select certain threads? For example, you could use Yamster application to manually put "stars" next to the threads you want to keep, and then YamsterCmd could delete all the unstarred threads. Or maybe just delete threads older than a certain date? Something like that.

Also, can you give an estimate of how many threads/messages you will need to delete? Thanks!
May 20, 2015 at 8:41 PM
thanks again for following up

for groups just tested if I delete a group it remove also the messages with it, so correct "all company" group concerned

our target is all messages without any filter, now the start option nice idea for admin to monitor good post from bad ones

now deleting messages older than a certain date this interesting because yammer do not have a retention period to set, the only option we have retention policy hard delete or soft delete

the network around 1 year old, 3,614 Total Messages (All Time) , 1,487 Total Files (All Time), total data size exported 1.4 GB

I have question do you think deleting messages will also delete the files ?

Thanks,
Yousef
May 20, 2015 at 9:48 PM
Okay, so maybe something like this:
YamsterCmd -DeleteSyncedThreads [-GroupId <int>] [-OlderThanDays <int>] [-WhatIf]

This command permanently deletes entire discussion threads from Yammer's server.
It only considers messages belonging to a single Yammer group; if GroupId is 
unspecified then the "All Company" group is used.  This command will only delete 
messages that appear in Yamster's local database, so you should run 
"YamsterCmd -Sync" beforehand.  If "-OlderThanDays" is specified, then it only 
deletes threads containing no activity since that many days.  If "-WhatIf"
is specified, then it will show the threads that would be deleted, without 
actually deleting anything. You must have "verified admin" permissions to use
this command.
It will not delete file attachments. That's probably also pretty straightforward to implement, but again the challenge is deciding which file attachments should be deleted.
May 21, 2015 at 8:04 AM
I tried same build YamsterPrototype-2015-05-20

ERROR: "-DeleteSyncedThreads" is not a valid command

I think this will be in the new build

Thanks,
Yousef
May 21, 2015 at 8:40 AM

Sorry about the confusion - I was asking if that design looked like it would solve your problem.

May 21, 2015 at 9:53 AM
No problem looking forward for the new Yamster ! :)

Thanks,
Yousef
May 21, 2015 at 5:54 PM
Sure, I'll take a look at it this weekend and hopefully have a prototype for you to try on Monday.
May 26, 2015 at 1:35 AM
Edited May 26, 2015 at 1:36 AM
Okay, here's an updated prototype for you to try:

YamsterPrototype-2015-05-25.zip

Instructions:

1) Run the Yamster application, and subscribe to your "(All Company)" group using the Sync Settings tab
2) Start syncing, and login using your "verified admin" account
3) Let the sync run until everything that you want to delete appears in Yamster, then stop syncing
4) Open a Command Prompt, and run the YamsterCmd tool like this:
C:\>cd "C:\Program Files (x86)\Yamster"
C:\Program Files (x86)\Yamster> YamsterCmd -Help -DeleteSyncedThreads
...
C:\Program Files (x86)\Yamster> YamsterCmd -DeleteSyncedThreads -WhatIf
The "-WhatIf" option will display the threads to be deleted (without deleting anything yet). Make sure it looks correct!

5) When you are ready to start deleting, run it without the "-WhatIf" option:
C:\>cd "C:\Program Files (x86)\Yamster"
C:\Program Files (x86)\Yamster> YamsterCmd -DeleteSyncedThreads
While deleting, it will display each thread and each message being processed. Because Yammer's throttling limits the tool to around 20 deletes per minute, it may take a long time. (If you see "E" instead of a message number, that means it encountered an error. If you see "S", that means the message was skipped.)

If the tool encounters errors with certain messages, you can use the "-SkipStarred" or "-IgnoreErrors" options to skip over the messages that are causing trouble.

6) After you are done, open Yamster and click File -> Resync Everything. This is a workaround because the sync engine doesn't understand bulk deletes yet, and may get stuck.

Let me know how it works. I apologize in advance for any bugs -- I didn't have much time to test it. :-)
May 26, 2015 at 5:54 PM
Hi,

Thanks a lot I didn't notice the update i will check tomorrow mooring and report back to you

Thanks,
Yousef
May 27, 2015 at 7:47 AM
Edited May 27, 2015 at 6:28 PM
Great Job working :)

Yamster Deletion

btw I found one thing on Yammer home if I select "all company" no messages clean
but if I go to yammer home then there is "top/all/following" some messages shown there strange !

looking more from Yamster in future , if you need any help in more testing I am ready

Thanks,
Yousef
May 28, 2015 at 12:33 AM
My understanding is that the top/all/following feeds collect messages from various groups. The group name is usually shown in a header above each message. If the header says "All Company" for a message, but the message doesn't appear on the "All Company" group page, then does seem strange. Maybe a bug? Do you have a screenshot your Yammer page?

Otherwise, did the tool successfully complete and delete everything?
May 28, 2015 at 3:08 PM
when I go to "all company" it says "There are no messages in this feed" so mean it delete everything !

All company


in ALL feed view page there is post with "All Company" , but the message doesn't appear on the "All Company" group page !

All Feed


strange even Yamster DB is blank !

Yamster DB

Thanks,
Yousef
May 29, 2015 at 7:30 PM
Edited May 30, 2015 at 12:57 AM
Thanks for providing the screenshot. These are special system messages ("Person X joined group Y", etc). The prototype I sent you doesn't attempt to delete system messages. I can update it fix this.

However, I was told that these messages don't really belong to the "All Company" group, even though certain feeds/views display it that way. That is why your screenshots are inconsistent. In order to discover these system messages reliably, I think Yamster would need the ability to sync from the "All" feed. Another option would be for Yamster to read the CSV file from Yammer's "Export Data" admin command.

Before getting involved with that -- how big of a problem is this? Is the number of system messages small enough that you could just delete them manually?
May 31, 2015 at 5:14 AM
Edited May 31, 2015 at 5:16 AM
I think all messages still shown in All feed, I tried manually but it keep going no end for these messages

I have exported the data csv file from admin Yammer_Export

thanks,
Yousef
May 31, 2015 at 6:16 PM
Thanks! I have saved a copy of the file, so you may remove it from your server. My relatives are visiting this weekend, so it may be a day or two before I can implement the importer for CSV. I don't think it will be very much work.
Jun 2, 2015 at 7:09 AM
Okay, here's an updated prototype:

YamsterPrototype-2015-06-01.zip

Instructions:

1) Use Yammer's "Export Data" command to create yammer_export.zip. NOTE: It seems there's a bug that causes it to leave out the activity from the current day, so you should specify the ending date to be some day in the future.

2) Unzip your yammer_export.zip archive into a folder e.g. "C:\Unzipped".

3) Run the command line like this:
C:\>cd "C:\Program Files (x86)\Yamster"
C:\Program Files (x86)\Yamster> YamsterCmd -Help -LoadCsvDump
C:\Program Files (x86)\Yamster> YamsterCmd -LoadCsvDump -Folder C:\Unzipped
4) Launch the Yamster application and log in as your verified admin account.

5) Run this command line:
C:\Program Files (x86)\Yamster> YamsterCmd -Help -DeleteSyncedThreads
C:\Program Files (x86)\Yamster> YamsterCmd -DeleteSyncedThreads
If you also want to delete private conversations, you can do this:
C:\Program Files (x86)\Yamster> YamsterCmd -DeleteSyncedThreads -GroupId Private
Let me know if that solves your problem. Hopefully this is the last round! :-)
Marked as answer by pgonzal on 4/11/2016 at 12:50 AM
Jun 2, 2015 at 7:25 PM
Hi,

it manage to delete 330 messages but after I rerun "Deleted 0 messages from 0 threads"

I have exported again the data from 01/01/2013 to 06/10/2015 and deleted the Yamster DB and reimport, tried to deleted again still receiving same "Deleted 0 messages from 0 threads"

new exported data file
Yammer Export

You are close Yamster ! :)

Thanks,
Yousef
Jun 2, 2015 at 9:36 PM
Hmmm... I deleted my Yamster.db and then loaded your CSV file. Then I ran "YamsterCmd -DeleteSyncedThreads -WhatIf". My output looks like this:
Id         LastUpdate              # Msgs  Message
541602432  2015-05-28 01:47:54 AM  1       has joined the MAF Properties n...
541961882  2015-05-28 05:30:29 PM  1       (Government and relation manger...
542669047  2015-05-30 10:57:48 PM  1       has joined the MAF Properties n...
542670921  2015-05-30 11:19:05 PM  1       has joined the MAF Properties n...
...
It shows a total of 339 messages in 329 threads in the "All Company" group. Is this what you are seeing? (If not, are you sure you imported the right file?)

When you run without "-WhatIf", does it attempt to delete any messages? Does it encounter any errors? Errors are shown as a letter "E" like this:
Id         LastUpdate              # Msgs  Message
---------- ----------------------- ------- ----------------------------------
541602432  2015-05-28 01:47:54 AM  1       has joined the MAF Properties n...
 E
541961882  2015-05-28 05:30:29 PM  1       (Government and relation manger...
 E
Jun 2, 2015 at 9:55 PM
same result if run
YamsterCmd -DeleteSyncedThreads -WhatIf

deletion yamster

if run this
YamsterCmd -DeleteSyncedThreads -OlderThanDays 10 -WhatIf
"Deleted 0 messages from 0 threads"

I have noticed that yamster only see messages from 28-05 onwards not before even it have old dates !

Thanks,
Yousef
Jun 2, 2015 at 11:49 PM
These messages are not in the "All Company" group. Your screenshot is from the "All Yams" view, which includes messages from the private conversations group:

Image

Whereas on the "Groups" tab, you can see that the oldest message for "All Company" is from 5/28/2015.

Image

If you want to delete the private conversations, you can specify "-GroupId Private" like I suggested in step 5.
Jun 3, 2015 at 7:38 PM
Edited Jun 3, 2015 at 7:38 PM
100% CORRECT , I did not notice that these messages are conversations type !

thanks a lot pgonzal for the great help and I am looking forward to test any new feature you add to the project

Thanks,
Yousef