Friday, January 20, 2017

Donal J Trump Inaugral Address : Live Funny Excerpts From Speech

Donald J Trump's Inaugural Speech:




Chief Justice Roberts, President Carter, President Clinton, President Bush, President Obama, fellow Americans, and people of the world: Fuck you.

We, the citizens of America, are now joined in a great national effort to doom our country and to restore balance in world power.

Together, we will determine the course of America and the world for years to come. We will face challenges. We will confront hardships. But we will get the job done.

Today's ceremony, however, has very special meaning. Because today we are not merely transferring power from one administration to another, or from one party to another -- but we are transferring power from Washington, D.C. and giving it back to Moscow, the Man without a Face. And Thank You Bane for the inspiration

For too long, a small group of nation's  has reaped the rewards of power while the rest of world borne the cost. Washington flourished -- but the world did not get share in its wealth. US prospered -- but the world crumbled.

That all changes -- starting right here, and right now, because this moment is your moment: it belongs to you.

From this day forward, a new vision will govern our land.
From this moment on, it's going to be America Last

I will fight wars for you with every breath in my body -- and I will never, ever let you down.
America will start winning again, winning like never before..

We will follow two simple rules: Buy American and hire American. - Thank You Modi for inspiration.

We will reinforce old alliances and form new ones -- and unite the civilized world against radical Islamic terrorism, which we will eradicate completely from the face of the Earth. - Thank You Hitler for inspiration!

We will no longer accept politicians who are all talk and no action -- constantly complaining but never doing anything about it. The time for empty talk is over. Now arrives the hour of action.. - Though You took me! In your face!

Together, We will make America weak again.
We will make Russia wealthy again.
We will make Hitler proud again.
We will make World War again.
And yes, together, we will doom America again. 
Thank you. 
God bless you. And God bless America.




Saturday, January 14, 2017

How to send a meeting request correctly with nodemailer?

I am trying to use the following code to send out meeting request using nodemailer. The problem I am facing is that the meeting invite is going as an attachment ics file instead of request where one can directly add. I have tried it on multiple mail client. Any pointers would be highly appreciated.
transport.sendMail({
                    from: 'BakBak.io ',
                    to: 'biplav.saraf@gmail.com',
                    subject: 'Meeting',
                    //html: "Hi",
                    text: "Hola!!",
                    alternative: {
                      contentType: "text/calendar; method=REQUEST; name='meeting.ics';component=VEVENT",
                      contents: new Buffer(cal.toString()),
                      contentEncoding:"7bit",
                      "Content-Class":"urn:content-classes:calendarmessage"
                    },
                    headers: {
                              "Content-Type": "text/calendar", 
                              //"charset":"utf-8",
                              "method":"REQUEST",
                              "component":"VEVENT",
                              "Content-Class":"urn:content-classes:calendarmessage"
                            }//,
                    //attachments : [{filename:'invite.ics',contents: cal.toString()}]
                    }, function(err, responseStatus) {
                    if (err) {
                        console.log(err);
                        res.render('schedule',{errors: err.message});
                    } else {
                        console.log(responseStatus.message);
                        res.render('schedule',{success_msg: "Successfully Created!"});
                    }
                });

Answer:
Gmail does not show meeting request and give an option to add to calendar if sender and receiver are same.
This is what worked for me:
transport.sendMail({
                    from: 'BakBak.io ',
                    to: 'donateoldspectacles@gmail.com',
                    subject: 'Meeting',
                    html: "Hiya!!",
                    text: "Hola!!",
                    alternatives: [{
                      contentType: "text/calendar",
                      content: new Buffer(ical)
                    }]
                    }, function(err, responseStatus) {
                    if (err) {
                        console.log(err);
                        res.render('schedule',{errors: err.message});
                    } else {
                        console.log(responseStatus.message);
                        res.render('schedule',{success_msg: "Successfully Created!"});
                    }
                });
function createIcal(params,uid) {
start = new Date(params.start);
end = new Date(params.end);
ts = new Date();
start = getTZFormat(start);
end = getTZFormat(end);
ts = getTZFormat(ts);
uid = replaceAll('-','',guid());
main_email = params.email;
part_email = params.main_email;
org_name = "BakBak Scheduler";
org_email = "donateoldspectacles@gmail.com";
subject = params.subject;
agenda = params.agenda;
url = 'http://www.bakbak.io/schedule/meeting/parts?users='+main_email+','+part_email;
escaped_url = ' <'+url+'>';
return 'BEGIN:VCALENDAR\r\n'
+'PRODID:-//Bakbak//BakBak Scheduler Calendar 1.0//EN\r\n'
+'VERSION:2.0\r\n'
+'CALSCALE:GREGORIAN\r\n'
+'METHOD:REQUEST\r\n'
+'BEGIN:VEVENT\r\n'
+'DTSTAMP:'+ts+'\r\n'
+'DTSTART:'+start+'\r\n'
+'DTEND:'+end+'\r\n'
+'SUMMARY:'+subject+escaped_url+'\r\n'
+'UID:'+ uid +'\r\n'
+'DESCRIPTION:'+ agenda +' \r\n'
+'LOCATION: Web Location'+escaped_url+'\r\n'
+'ORGANIZER;CN='+org_name+':mailto:'+org_email+'\r\n'
+'ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN='+part_email+';X-NUM-GUESTS=0:mailto:'+part_email+'\r\n'
+'ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN='+main_email+';X-NUM-GUESTS=0:mailto:'+main_email+'\r\n'
+'SEQUENCE:0\r\n'
+'LAST-MODIFIED:'+ts+'\r\n'
+'CREATED:'+ts+'\r\n'
+'TRANSP:OPAQUE\r\n'
+'STATUS:CONFIRMED\r\n'
+'END:VEVENT\r\n'
+'END:VCALENDAR\r\n';
}