Donald Trump has had one heck of a year.
From narrowly surviving the Mueller report to crossing into North Korea, declaring himself the “chosen one” and doctoring a hurricane map with a Sharpie and then lying about it, 2019 will be remembered as the year the wheels finally came off his aberrant but undeniably entertaining presidency.
The year may be drawing to a close with his impeachment already confirmed for attempting to extort favours from a foreign government but it was also a memorable one for Trump’s Twitter account, this president actively priding himself on governing by trolling and seldom failing to provoke outraged headlines.
Outside of his all-too-familiar gripes about “witch hunts” and the “fake news media”, Trump has tweeted abuse to Spike Lee, Bette Midler and Debra Messing, feuded with Arizona senator and war hero John McCain despite him being dead and called the mayor of London a “stone cold loser” live from Air Force One.
He’s tweeted appalling alt-right memes to deride his political rivals, told four American congresswomen to “go back to where they came from”, furiously denied that his hotels have bedbugs and even engaged in a little light witness intimidation, all in 280 characters or fewer.
Here’s our rundown of Trump’s 20 worst tweets of 2019.
Accuses celebrated African-American film director Spike Lee of racism
Trump started the year bogged down in the longest government shutdown in American history as he feuded with Congress over his demands for funding for his US-Mexico border wall (having previously promised the public Mexico would pay for it), before cynically declaring a national emergency and empowering himself to claw capital away from Pentagon construction projects instead.
He still found time to get upset about the Oscars, accusing BlacKkKlansman director Spike Lee of a “racist hit on your president” over his criticism of Trump in his acceptance speech.
Resumes long-running feud with a dead man
Trump picked up his feud with John McCain - the Vietnam War veteran, long-serving Arizona senator and 2008 Republican presidential candidate - in mid-March, laying into a man he had previously derided for not being a hero ("I like people who weren't captured") despite McCain having passed away from brain cancer the previous August.
The president seemingly never forgave McCain for passing on a copy of the so-called 'Steele Dossier' - containing allegations of his ties to Russia - to the FBI in November 2016.
Posting memes of Joe Biden 'molesting himself'
When Barack Obama's vice president Joe Biden announced his intention to run for the presidency in 2020, stories circulated questioning the veteran's habit of touching female staffers in a manner several said they were uncomfortable with.
Trump - with spectacular crassness, even for him - responded by tweeting and pinning a doctored version of Biden's apology video to his profile page, in which the candidate is crudely animated molesting himself.
The "creative" who made the clip, known as Carpe Donktum, would be invited to the White House in July to attend a Social Media Summit with other right-wing trolls and influencers.
Brands London mayor Sadiq Khan a 'stone cold loser'
In June, Trump visited Britain, Ireland and France to take part in commemorative services honouring the 75th anniversary of D-Day.
Trump was expecting the Downton Abbey treatment on arriving in London but immediately caused controversy by attacking London's Muslim mayor and moaning about the fact that he could not get Fox News at the ambassador's residence near St James's Park.
Says Bette Midler is a 'washed up psycho'
Rather than reflecting on the heroism of "the greatest generation" as he arrived in northern France to honour the Normandy Landings, Trump was busy picking another celebrity fight back home on his smartphone. This time musical star Bette Midler was the target of his ire.
The next day he gave an interview to Laura Ingraham of Fox in front of the Normandy American Cemetery, again showing no respect for the dead buried behind him as he laid into House speaker Nancy Pelosi back in Washington, calling her a "nasty, vindictive, horrible person".
Accidentally labels Prince Charles 'the Prince of Whales'
Trump tweeted these words on 13 June, deleting them before he realised the idiocy of his typo:
I just met with the Queen of England (U.K.), the Prince of Whales, the P.M. of the United Kingdom, the P.M. of Ireland, the President of France and the President of Poland.
We talked about "Everything!" Should I immediately call the FBI about these calls and meetings? How ridiculous! I would never be trusted again.
He was too slow, of course, and a deluge of memes like the one below swiftly followed.
Blames Democrats for migrant drownings
The plight of immigrant families, particularly children, on the receiving end of Trump's brutal "zero tolerance" policies at the US-Mexico border was a recurring outrage throughout the year.
Few episodes were more shocking than the photograph seen around the world of Oscar Alberto Martinez Ramirez and his 23-month-old daughter Valeria drowned face-down in the Rio Grande, Texas.
"If they changed the laws you wouldn’t have that," Trump callously told reporters on the White House lawn, before blaming his Democratic opponents for the tragedy.
Tells 'The Squad' to go back where they came from
Probably the president's most notorious tweets of the year saw him attacking four young congresswomen of colour - Alexandria Ocasio-Cortez, Ilhan Omar, Rashida Tlaib and Ayanna Pressley - suggesting:
Why don’t they go back and help fix the totally broken and crime infested places from which they came.
The appalling, racist tirade against the progressives started a week-long festival of outrage and liberal hand-wringing as Trump refused to apologise but, in truth, it also largely succeeded in its original intention: distracting the media from the upcoming testimony to Congress of FBI special counsel Robert Mueller on his report into Russia and whether the president obstructed justice.
Says Baltimore is 'a disgusting rat and rodent infested mess'
The sequel to that episode was Trump hitting out at Elijah Cummings, another Democratic congressman, civil rights hero and chairman of the House Oversight Committee, accusing him of failing to look after his Baltimore district, describing the Maryland city as "a disgusting, rat and rodent infested mess".
Cummings, typically dignified throughout, sadly passed away in October and Trump was far more gracious in reacting than he had been regarding McCain, proving he is capable of learning a lesson after all.
Angrily declines to visit Denmark after PM refuses to sell him Greenland
Trump reportedly discussed purchasing Greenland as a US territory with his advisers, joking on Twitter about building one of his ghastly Las Vegas-style tower blocks on the rocky North Atlantic island.
But when Danish PM, Mette Frederiksen refused to sell it to him, branding the idea "an absurd discussion", Trump was infuriated and refused to visit Copenhagen in a fit of pique, prompting a minor diplomatic incident.
Forced to deny outbreak of bedbugs at his Miami hotel
In late August, Trump returned home from the 45th G7 summit in Biarritz, France, impressed by his seaside surroundings and knowing it was the US's turn to host in 2020, meaning he would need to match the location for spectacle.
He proposed his own Trump National Doral Miami golf resort in Florida - flagrantly ignoring a conflict of interest concerns - only for a local newspaper to report the venue had previously suffered an outbreak of bedbugs. Trump was forced to deny the story and ultimately abandon the idea following a further outcry about his profiteering.
Posts classified satellite image of Iranian rocket explosion
Three days later, Trump tweeted about a sudden explosion that occurred at the Imam Khomeini Space Center in Iran’s Semnan province.
The tweet included a high-resolution aerial image of a smouldering launch pad captured by a US surveillance satellite that had been given to him as part of a classified intelligence briefing and was not intended for release. Whoops!
Wrongly declares Alabama will be hit by Hurricane Dorian
With Hurricane Dorian zeroing in on the southeastern US seaboard at the start of September, Trump took time out from his busy golfing schedule (for which he'd already ducked out of a trip to Poland to commemorate the outbreak of the Second World War) to warn the citizens of four states that they could be about to get hit.
But one of them - Alabama - was not in the path of the storm at all.
That tweet was quickly debunked by that state's office of the National Weather Service in order to avert a mass panic.
What followed was a full week of Trump tweets angrily insisting he was right all along and commerce secretary Wilbur Ross threatening to fire the weathermen who had undermined him before the ludicrousness reached a crescendo when Trump presented a hurricane map from the Oval Office that he appeared to have doctored himself to loop in Alabama, a lie carried out with his trusty Sharpie, clearly still visible on his desk.
Cue many, many memes.
Attacks Will & Grace actress amid hurricane relief effort
Having gone much of the summer without a decent celebrity beef, Trump struck out at Will & Grace actress Debra Messing over her activitism against him.
Even she felt he would be better off focused on governing and offering support to the communities devastated by Dorian.
Denies demanding a 'Moot' full of rabid alligators and snakes at the border
Responding angrily to a New York Times story in early October reporting that he had demanded snipers lining the top of his US-Mexico border wall and a moat running along its base populated by ravenous reptiles, Trump accidentally referred to it as a "moot", a Hall of Famer to be filed alongside "covfefe".
Even more embarrassingly, the idea for the border snake pit had actually previously been proposed by both Barack Obama and late night satirist Stephen Colbert as a joke, the sort of madcap scheme formulated by a cartoon supervillain, not a real-life head of state.
Forced to take down lame Nickelback meme
On the same day (!), Trump also tweeted the words "LOOK AT THIS PHOTOGRAPH!" with a Nickelback-inspired video attempting to attack the Bidens as the Democratic-led impeachment inquiry got underway.
He was swiftly ordered to take it down due to copyright infringement, as he had back in April when he used Hans Zimmer's score for The Dark Knight Rises in a campaign promo without permission.
Attempt to drag Nancy Pelosi backfires when photo makes her look like absolute boss
Later that month, Trump met with senior Democrats at the White House to discuss his extremely ill-considered decision to withdraw American troops from northern Syria, leaving its Kurdish allies against Isis under threat from attack by Turkey.
The meeting did not go to plan with Nancy Pelosi, Chuck Schumer and Steny Hoyer storming out, concluding the discussion was pointless. Trump subsequently attempted to own the narrative by posting a picture of Pelosi, the only woman at a table lined with grey-looking male cabinet members and ageing generals, stood up and lecturing the president.
"Nervous Nancy's unhinged meltdown!" he jibed. It looked like anything but.
Posts picture of heroic military dog but insists name classified
Trump was particularly delighted by the killing of Isis leader Abu Bakr al-Baghdadi in Syria in a daring raid by US Special Forces in late October, giving a press conference in which he gave a graphic, gory description of the terrorist's death.
Afterward, he tweeted this image of the Belgian malinois who played a crucial role in tracking him down, telling us the name of the dog was classified, no doubt saving it from being bumped off in a revenge attack by infuriated jihads.
Even more bizarrely, he followed that with a Photoshopped image of himself giving the dog the Medal of Honor, apparently taken from The Daily Wire. Trump did eventually meet the canine - who turned out to be called "Conan" - at the White House but seemed frightened of him, hiding behind vice president Mike Pence whenever possible.
Engages in live witness intimidation while impeachment testimony being heard
With the public phase of the impeachment inquiry underway and the likes of diplomatic officials Bill Taylor and George Kent giving dramatic testimony to Congress on the Ukraine scandal, Trump made the extremely bad decision to attempt to discredit his ex-ambassador to Ukraine Marie Yovanovitch while she was giving her deposition.
House Intelligence Committee chairman Adam Schiff read her the tweet aloud and asked Yovanovitch how she felt.
"Very intimidated," said the witness, prompting cries of witness intimidation - itself an impeachable offense - the case as clear cut as you could ask for.
Posts ridiculous Rocky meme to blindside media over Thanksgiving trip to Afghanistan
The White House went to some lengths to conceal Trump's secret visit to Afghanistan to serve up Thanksgiving turkey to American troops.
One rather cynical strategy was to willfully mislead the mainstream press by posting a picture of his head Photoshopped onto Sylvester Stallone's body in character as boxer Rocky Balboa, seemingly a nod to his doctor's (probably fictional) praise of his physique at a recent medical check-up.
The tweet did achieve its aim of distracting from the president's Middle Eastern stopover and was also taken up by protesters in Hong Kong to thank Trump for standing up to China but it also inspired Christine Pelosi to offer a doctored image of her mother beating Trump in the ring, the family owning him online yet again.