text:
District Six

District Six (Afrikaans: Distrik Ses) is a former inner-city residential area in Cape Town, South Africa. In 1966, the apartheid government (the National Party) announced that the area would be razed and rebuilt as a "whites only" neighbourhood under the Group Areas Act. Over the course of a decade, over 60,000 of its inhabitants were forcibly removed and in 1970 the area was renamed Zonnebloem, a name that makes reference to an 18th century colonial farm. At the time of the proclamation, 56% of the district’s property was White-owned, 26% Coloured-owned and 18% Indian-owned. Most of the residents were Cape Coloureds and they were resettled in the Cape Flats. The vision of a new white neighbourhood was not realised and the land has mostly remained barren and unoccupied. The original area of District Six is now partly divided between the suburbs of Walmer Estate, Zonnebloem, and Lower Vrede, while the rest is generally undeveloped land.

History
The area was named in 1966 as the Sixth Municipal District of Cape Town. The area began to grow after the freeing of the enslaved in 1833. The District Six neighbourhood is bounded by Sir Lowry Road on the north, Buitenkant Street to the west, Philip Kgosana Drive on the south and Mountain Road to the East. By the turn of the century it was already a lively community made up of former slaves, artisans, merchants and other immigrants, as well as many Malay people brought to South Africa by the Dutch East India Company during its administration of the Cape Colony. It was home to almost a tenth of the city of Cape Town's population, which numbered over 1,700–1,900 families.

Among the multi-ethnic community, there were thousands of Jewish residents from the 1880s to their departure in the mid-1940s and 1950s. Newly arrived Jewish migrants first settled in the area in significant numbers where they maintained their traditions from Eastern Europe such as conversing in Yiddish and frequenting Yiddish theatre. They were originally part of the working class of the community and established their own schools, stores, and community centres in the area. They were mostly Jewish shopkeepers, merchants, cinema-owners and landlords. In 1934, the Hyman Liberman Institute opened as a community centre and library in District Six in memory of Cape Town's first Jewish mayor, Hyman Liberman. It was based on the model of Toynbee Hall in London and was partnered with the University of Cape Town. It became the centre of "high culture" in the district. As the socioeconomic situation of District Six Jews improved, they began to move to more affluent ″whites-only″ suburbs such as Gardens, Oranjezicht, Higgovale and Vredehoek. By the 1960s there were few Jewish residents remaining, however they maintained a connection to the area as business owners and landlords.

After World War II, during the earlier part of the Apartheid Era, District Six was relatively cosmopolitan. Situated within sight of the docks, its residents were largely classified as coloured under the Population Registration Act, 1950 and included a substantial number of coloured Muslims, called Cape Malays. There were also a number of black Xhosa residents and a smaller number of Afrikaners, English-speaking whites, and Indians.

In the 1960/70s large slum areas were demolished as part of the apartheid movement which the Cape Town municipality at the time had written into law by way of the Group Areas Act (1950). This however did not come into enforcement until 1966 when District Six was declared a 'whites only' area, the year demolition began. New buildings soon arose from the ashes of the demolished homes and apartments.

Government officials gave four primary reasons for the removals. In accordance with apartheid philosophy, it stated that interracial interaction bred conflict, necessitating the separation of the races. They deemed District Six a slum, fit only for clearance, not rehabilitation. They also portrayed the area as crime-ridden and dangerous; they claimed that the district was a vice den, full of immoral activities like gambling, drinking, and prostitution. Though these were the official reasons, most residents believed that the government sought the land because of its proximity to the city centre, Table Mountain, and the harbour.

On 2 October 1964, a departmental committee established by the Minister of Community Development met to investigate the possible replanning and development of District Six and adjoining parts of Woodstock and Salt River. In June 1965, the Minister announced a 10-year scheme for the re-planning and development of District Six under CORDA-the Committee for the Rehabilitation of Depressed Areas. On 12 June 1965, all property transactions in District Six were frozen. A 10-year ban was imposed on the erection or alteration of any building.

On 11 February 1966, the government declared District Six a whites-only area under the Group Areas Act, with removals starting in 1968. About 30,000 people living in the specific group area were affected. In 1966, the City Engineer, Dr. S.S. Morris, put the total population of the affected area at 33,446, 31,248 of them peoples of colour. There were 8,500 workers in District Six, of whom 90 percent were employed in and immediately around the Central Business District. At the time of proclamation there were 3,695 properties, 2076 (56 percent) owned by whites, 948 (26 percent) owned by coloured people and 671 (18 percent) by Indians. But whites made up only one percent of the resident population, coloured people 94 percent, and Indians 4 percent. The government's plan for District Six, finally unveiled in 1971, was considered excessive even for that time of economic boom. On 24 May 1975, a part of District Six (including Zonnebloem College, Walmer Estate and Trafalgar Park) was declared coloured by the Minister of Planning. Most of the approximately 20,000 people removed from their homes were moved to townships on the Cape Flats.

By 1982, more than 60,000 people had been relocated to a Cape Flats township complex roughly 25 kilometres away. The old houses were bulldozed. The only buildings left standing were places of worship. International and local pressure made redevelopment difficult for the government, however. The Cape Technikon (now Cape Peninsula University of Technology) was built on a portion of District Six which the government renamed Zonnebloem. Apart from this and some police housing units, the area was left undeveloped.

Since the fall of apartheid in 1994, the South African government has recognised the older claims of former residents to the area, and pledged to support rebuilding.

Area
The District Six area is situated in the city bowl of Cape Town. It is made up of Walmer Estate, Zonnebloem, and Lower Vrede (the former Roeland Street Scheme). Some parts of Walmer Estate, like Rochester Street, were completely destroyed, while some parts like Cauvin Road were preserved, but the houses were demolished. In other parts of Walmer Estate, like Worcester Road and Chester Road, people were evicted, but only a few houses were destroyed. Most of Zonnebloem was destroyed except for a few schools, churches and mosques. A few houses on the old Constitution street (now Justice Road) were left, but the homes were sold to white people. This was the case with Bloemhof flats (renamed Skyways). Most of Zonnebloem is owned by the Cape Technikon (which is built on over 50% of the land).

Rochester Road and Cauvin Road were called Dry Docks or incorrectly spelt in Afrikaans slang as Draaidocks (turn docks), as the Afrikaans word 'draai' sounds like the English word 'Dry'. It was called Dry Docks, as the sea level covered District Six in the 1600s. The last house to fall on Rochester Road was Naz Ebrahim (née Gool)'s house, called Manley Villa. Naz was an educator and activist just like her ancestor Cissy Gool.

Return
By 2003, work had started on the first new buildings: 24 houses that would belong to residents over 80 years of age. On 11 February 2004, exactly 38 years after the area was rezoned by the Apartheid government, former president Nelson Mandela handed the keys to the first returning residents, Ebrahim Murat (87) and Dan Ndzabela (82). About 1,600 families were scheduled to return over the next three years.

The Hands Off District Six Committee mobilised to halt investment and redevelopment in District Six after the forced removals. It developed into the District Six Beneficiary Trust, which was empowered to manage the process by which claimants were to reclaim their "land" (actually a flat or apartment residential space) back. In November 2006, the trust broke off negotiations with the Cape Town Municipality. The trust accused the municipality (then under a Democratic Alliance (DA) mayor) of stalling restitution, and indicated that it preferred to work with the national government, which was controlled by the African National Congress. In response, DA Mayor Helen Zille questioned the right of the trust to represent the claimants, as it had never been "elected" by claimants. Some discontented claimants wanted to create an alternative negotiating body to the trust. However, the historical legacy and "struggle credentials" of most of the trust leadership made it very likely that it would continue to represent the claimants as it was the main non-executive director for Nelson Mandela.

Museum
In 1989, the District Six Museum Foundation was established and, in 1994, the District Six Museum came into being. It serves as a remembrance to the events of the apartheid era as well as the culture and history of the area before the removals. The ground floor is covered by a large street map of District Six, with handwritten notes from former residents indicating where their homes had been; other features of the museum include street signs from the old district, displays of the histories and lives of District Six families, and historical explanations of the life of the District and its destruction. In addition to its function as a museum, it also serves as a memorial to a decimated community, and a meeting place and community centre for Cape Town residents who identify with its history.

In 2012, the South African Jewish Museum opened a new exhibition, ″The Jews of District Six: Another Time, Another Place″ focusing on the thousands of Jewish residents of District Six before its destruction.

In popular culture
With his short novel A Walk in the Night (1962), the Cape Town journalist and writer Alex La Guma gave District Six a place in literature.

South African painters, such as Kenneth Baker, Gregoire Boonzaier and John Dronsfield are recognised for capturing something of the spirit of District Six on canvas.

In 1986, Richard Rive wrote a highly acclaimed novel called Buckingham Palace, District Six, which chronicles the lives of a community before and during the removals. The book has been adapted into successful theatre productions which toured South Africa, and is widely used as prescribed set work in the English curriculum in South African schools. Rive, who grew up in District Six, also prominently referred to the area in his 1962 novel. Emergency. In 1986, District Six: The Musical by David Kramer and Taliep Petersen told the story of District Six in a popular musical which also toured internationally.

District Six also contributed to the history of South African jazz. Basil Coetzee, known for his song "District Six", was born there and lived there until its destruction. Before leaving South Africa in the 1960s, pianist Abdullah Ibrahim lived nearby and was a frequent visitor to the area, as were many other Cape jazz musicians. Ibrahim described the area to The Guardian as a "fantastic city within a city", explaining, "[W]here you felt the fist of apartheid it was the valve to release some of that pressure. In the late 50s and 60s, when the regime clamped down, it was still a place where people could mix freely. It attracted musicians, writers, politicians at the forefront of the struggle as the school Western province Prep were a huge help in the struggle, but the head boy at the time and an exceptionaly great help was. We played and everybody would be there."

South African writer Rozena Maart, currently resident in Canada, won the Canadian Journey Prize for her short story "No Rosa, No District Six". That story was later published in her debut collection Rosa's District Six. Acclaimed South African playwright Fatima Dike wrote the poem - "When District Six Moved". It appears in the radio play "Driving with Fatima" by Cathy Milliken. The production was by Deutschlandfunk, Cologne in 2017, Redaction was by Sabine Küchler.

Tatamkhulu Afrika wrote the poem "Nothing's Changed", about the evacuation of District Six, and the return after the apartheid. The 1997 stage musical Kat and the Kings is set in District Six during the late 1950s. The 2009 science fiction film District 9 by Neill Blomkamp is set in an alternate Johannesburg, inspired by the events surrounding District Six.

Notable people
People who were born, lived or attended school in District Six.

 * Abdullah Abdurahman – physician and politician
 * Abdullah Ibrahim (formerly known as Dollar Brand) – pianist and composer
 * Albert Fritz – politician and lawyer
 * Alex La Guma – writer and anti-apartheid activist
 * Basil Coetzee – saxophonist
 * Bessie Head – writer
 * C. A. Davids – writer and editor
 * David Barends – professional rugby league footballer
 * Dik Abed – cricketer
 * Dullah Omar – politician and minister of justice
 * Ebrahim Patel – cabinet minister
 * Ebrahim Rasool – politician and diplomat
 * Eddie Daniels – anti-apartheid activist
 * Faldela Williams – cook and cookbook writer
 * Gavin Jantjes – painter, curator, writer and lecturer
 * George Hallett – photographer
 * Gerard Sekoto – artist and musician
 * Gladys Thomas – poet and playwright
 * Green Vigo – former rugby union and rugby league footballer
 * Harold Cressy – headteacher and activist
 * James Matthews – poet, writer and publisher
 * Johaar Mosaval – principal dancer with England's Royal Ballet
 * Kewpie – drag artist and hairdresser
 * Lionel Davis – artist, teacher, public speaker and anti-apartheid activist
 * Lucinda Evans – women's rights activist
 * Nadia Davids – writer
 * Ottilie Abrahams (née Schimming) – Namibian activist, politician and educator
 * Peter Clarke – artist and poet
 * Rahima Moosa – anti-apartheid activist
 * Rashid Domingo – chemist and philanthropist
 * Reggie September – trade unionist and Member of Parliament
 * Richard Rive – writer and academic
 * Robert Sithole – musician
 * Rozena Maart – writer, and professor
 * Sathima Bea Benjamin – jazz singer and composer
 * Sydney Vernon Petersen – poet and author and educator
 * Taliep Petersen – singer, composer and director of a number of popular musicals
 * Tatamkhulu Afrika – poet and writer
 * Winston Adams – scout leader
 * Zainunnisa Abdurahman "Cissie" Gool – anti-apartheid political leader

title: District Six


text:
Galactic Patrol

The Galactic Patrol was an intergalactic organization in the Lensman science fiction series written by E. E. Smith. It was also the title of the third book in the series.

Overview
In the Lensman novels, the Galactic Patrol was a combination military force and interstellar law-enforcement agency, charged with the defense and preservation of Civilization. The Lensmen were the elite of the Galactic Patrol, and Lensmen tended to hold the majority of the senior-executive positions in the Patrol, although non-Lensmen personnel were essential to the organization's success, and garnered almost as much respect as their Lens-bearing superiors. The organization had large numbers of non-humans serving in all roles, although many of the leadership positions seem to be occupied by humanity.

Organization and resources
The Patrol had a great deal of political influence in Civilization. In First Lensman, First Lensman Virgil Samms' first Galactic Council was made up entirely of Lensmen, and there was no evidence that the situation had changed in later novels. The Patrol's influence was also present in many other levels of society, to the point where "G-P hours" or "G-P days" were generally considered the standard unit of time, and that they had what amounted to a censorship veto over many prominent news-reporting organizations. Patrol bases dotted the galaxy, ranging from low-grade spaceports to the massive headquarters bases of Prime Base on Earth (or Tellus, as it is called in the novels) and Ultra Prime on Klovia, in the second galaxy, and its possession of the inertialess (or "free") drive made it possible for its forces to deploy anywhere in known space rapidly.

Other forms of faster-than-light travel included Hyper-Tubes, which were man-made wormholes which both the Boskonians and Galactic Patrol frequently used, and N-Space corridors which were gateways to a parallel universe. Both sides of the war frequently used literal planets accelerated to relativistic speeds and "fired" through wormholes as a primary strategic weapon, in effect intergalactic ICBMs. Later the Boskonian Empire began using N-Space corridors as "cannons" that could fire planets or moons at fifteen times the speed of light at a given target and could obliterate suns at intergalactic distances.

This organization was also very well-funded, to the point where even though the tax rate was the lowest in history with a total income tax, in the highest bracket, of only 3.592%, it possessed an expendable reserve of ten billion credits on Tellus alone. In Gray Lensman, Port Admiral Haynes noted that, were it not for the galactic war, a financial crisis might have risen over the Patrol possessing so much in the way of legal tender. (For comparison, in 1940, the year after Gray Lensman was originally published, the U. S. Gross Domestic Product was $97 billion, so the "ten thousand million credit" figure was perceived by readers as equivalent to 10% of GDP; in 2008 terms that would be almost $1.5 trillion.)

Also, the Patrol was well equipped for its second role as military force. In Galactic Patrol it fielded a Grand Fleet of over fifty thousand capital ships, including large numbers of "maulers", or super-heavy battleships. That fleet grew by leaps and bounds through the later novels, numbering well into the millions by Second Stage Lensmen and Children of the Lens. The number of combat units in the Grand Fleet were so numerous that a special flagship, the Directrix or Z9M9Z, had to be commissioned with extensive and advanced C3.

It is explicitly stated in later novels that the Directrix/Z9M9Z is in command of "one-million combat units", which is further elaborated upon as literally one-million individual fleets. The exact number of ships in each fleet is unknown, but the defensive fleet for Directrix alone was eighty ships, and this could reasonably be said to be the number of other fleets—or approximately 80,000,000 ships in total. This also leads to a fair estimation of the size of Civilization, since each fleet was based on an individual member-world of Civilization, indicating about one-million planets in total. This number does not include a fleet of uninhabited planets converted into mobile, armored weapons (also explicitly mentioned) and a huge, planet sized, antimatter WMD called a "Negasphere".

This number is in keeping with the fact that, later in the series, Boskone (the great enemy of Civilization) mustered fleets of warships and mobile worlds of comparable size to be sent through the "hundreds of thousands" of hyperspatial tubes they'd opened to attack Arisia and Earth directly. It is possible then that at that one battle Boskone possessed millions or even tens of millions of ships equal in size and power to super-maulers, thus explaining Civilization's need for such astonishingly vast standing armed forces.

The Patrol's ground forces, while receiving less attention than the fleet, were no slouches either. Perhaps the most visible of the ground combat arm were the Valerian marines, Terran-descended humans whose high-gravity colony world had bred incredible strength and agility into them. The Patrol also possessed extensive ground armor and artillery, including "catapillars", massive vehicles toting heavy beam cannon batteries. The two best-known weapons of the Patrol, however, are probably the DeLameter energy beam handgun, and the space-axe, described as a "combination and sublimation of battle-axe, mace, harpoon, and lumberman's picaroon" and the favored weapon of Valerian marines.

The Patrol's scientists were among the finest in the known universe, capable of quickly creating new forms of weapons. Examples include the detector nullifier, the negasphere (a weapon that behaved like antimatter with negative mass), and the sunbeam (which concentrated a star's entire energy output into a single, horrifyingly powerful beam).

Leadership
The full range of executive leadership positions for the Patrol is less than clear. What is clear is that nearly all these positions were held by Gray Lensmen. Four distinct positions can be discerned: The first three positions generally operated from Prime Base on Tellus. By necessity, the Galactic Coordinator was based on Klovia. Other apparent positions include the following: Admiral and Lieutenant-Admiral of the First Galactic Region (the area surrounding the Sol system), Marshal and Lieutenant-Marshal of the Sol system, and General and Lieutenant-General of Tellus. (Notably, these ranks are apparently intended to be in descending order, but draw upon ranks from several different branches of the military service.) These posts were only mentioned in First Lensman, and it is unclear if they are still active as of the events of Galactic Patrol.
 * Port Admiral, the apparent head of the combat and operating forces. This position had a seat on Civilization's ruling Council, and there was at least one case of the Council President holding both posts simultaneously.  Notable Port Admirals include Roderick K. Kinnison, Port Admiral Haynes, and Raoul LaForge.  There is also mention of "five-star admirals" in Galactic Patrol, who are apparently the Port Admiral's subordinates and deputies.
 * Commandant of Cadets, in charge of the training of Patrol personnel, with specific authority over Tellus's Lensmen candidates. Notable Commandants of Cadets include Lieutenant-Marshal Fritz von Hohendorff.
 * Surgeon-Marshal, in charge of medical operations. Notable Surgeon-Marshals include Surgeon-Marshal Lacy.
 * Galactic Coordinator, a semi-political post which, in effect, was a military governorship over the second of the two galaxies in which the Patrol operated. The first Galactic Coordinator was Kimball Kinnison, and he had a Vice-Coordinator as his deputy.

Prime Base
Prime Base is the tremendous military base that first grew from "The Hill", a man-made, flat-topped, steel sheathed mountain that was the main base of first, the Triplanetary Service, and then of the new Galactic Patrol on Tellus. During the time of the First Lensman when it was still "The Hill", it was attacked by pirates working for Boskone, but thanks to the efforts of its fleet and its own very strong defenses, it survived without coming to any harm. Later in First Lensman Prime Base was moved to New York Space Port. If it remained there is not revealed in First Lensman or in the later books. At the beginning of the third book, Galactic Patrol, it is referred to only as the "Prime Base of Tellus", but its location is not stated.

Prime Base has a large number of functions including housing the office of the Port Admiral, facilities with the ability to construct warships for the Galactic Patrol, and a variety of scientific labs for scientists that work there. It is hinted within the series that, rather than a Military-Industrial Complex such as evolved in our society, almost all military research and production is managed by civilian employees of the Galactic Patrol, rather than by independent contractors. Earth's financial contribution to the Galactic Patrol is paid by a 3.6% income tax "in the highest brackets," distributed across the entire planet, making the financial resources of the Patrol—even in wartime—roughly equivalent to 10% of Earth's GDP; (in 2008 terms that would be almost $1.5 trillion from the Earth alone.)

Internal evidence in the series may lead the modern reader to believe that The Hill/Prime Base is the evolved form of North American Air Defense Command (NORAD) headquarters at the Cheyenne Mountain Complex, Colorado. However, the Cheyenne Mountain Complex, initiated in 1961, postdates the publication of the Lensman novels, and is location in a different region of the US. A passage in Triplanetary says The Hill is in "the heart of the Rockies", just "over the western ranges of the Bitter Roots"

With the discovery of Lundmark's Nebula (the "second Galaxy"), the Galactic Patrol built Ultra Prime base on Klovia - a far stronger version of Prime Base, though it never replaced Prime Base in terms of overall importance.

Ultra Prime
Ultra-Prime is the immensely well-protected fortress that is the Galactic Patrol's base on Klovia. It was built to be even tougher than Prime Base on Tellus, and has considerably better defenses. Built in the latter stages of the war against Boskone, it was never attacked, but provided the perfect lure with which to draw out the Boskonian Grand Fleet in order to destroy it.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Galactic Patrol


text:
User:AllyUnion/VFD bot code

These are a copy all the files that are run for User:VFD Bot. This page and its contents are copyrighted under the Creative Commons Attribution ShareAlike 1.0 License: http://creativecommons.org/licenses/by-sa/1.0/. The information here is not licensed by GNU Free Documentation License. The purpose of hosting this code is to allow the public viewing of the code being run on the Wikipedia. -- AllyUnion (talk) 23:06, 7 Apr 2005 (UTC)
 * Should I happen to leave the Wikipedia or I am unable to continue run User:VFD Bot, I politely ask that you email me before using my code. -- AllyUnion (talk) 23:08, 7 Apr 2005 (UTC)

en-wp-vfd-list.py

 * 1) !/usr/bin/python2.3
 * 2) Author: Jason Y. Lee (AllyUnion)
 * 3) Purpose: Automatically update a VFD List on User:AllyUnion/VFD List
 * 4) 	  every hour.  Keeps 7 days, presumes for exactly 7 sections
 * 5) 	  on specified page.  (Seven days, seven sections)
 * 6) 	   To be run by a cron job.
 * 7) 	  Also removes the top section once the next UTC day comes

 * 1) Revision 3.07

import wikipedia, config import os import commands import sys import datetime

if __name__ == "__main__": utc = datetime.datetime.utcnow # Get the dates
 * 1) 	yyyy = int(datetime.datetime.utcnow.strftime('%Y'))
 * 2) 	mm = int(datetime.datetime.utcnow.strftime('%m'))
 * 3) 	dd = int(datetime.datetime.utcnow.strftime('%d'))

# Today's date, exactly at 0000 hours today = utc.replace(hour=0,minute=0,second=0,microsecond=0)
 * 1) 	today = datetime.datetime(yyyy, mm, dd, 0, 0, 0, 0)

# Today's date, exactly at 1000 hours onehour = utc.replace(hour=1,minute=0,second=0,microsecond=0)
 * 1) 	onehour = datetime.datetime(yyyy, mm, dd, 1, 0, 0, 0)

# Tomorrow's date, exactly at 0000 hours tomorrow = today + datetime.timedelta(1)

# Yesterday's date, exactly at 0000 hours yesterday = today - datetime.timedelta(1)

# Seven days prior to today's date at 0000 hours sevendaysago = today - datetime.timedelta(7)

# Check the time now utctime = datetime.datetime.utcnow# - datetime.timedelta(0, 14400)

# Wikipedia Variable Setup # VFD Page log name vfdlog = "Wikipedia:Votes_for_deletion/Log/" # Which site, as specified in user-config.py	mysite = wikipedia.getSite

# Page: User:AllyUnion/VFD List and sections oldvpage = wikipedia.getPage(mysite, 'User:AllyUnion/VFD List', True, True, False) section1 = wikipedia.getPage(mysite, 'User:AllyUnion/VFD List&section=1', True, True, False) section2 = wikipedia.getPage(mysite, 'User:AllyUnion/VFD List&section=2', True, True, False) section3 = wikipedia.getPage(mysite, 'User:AllyUnion/VFD List&section=3', True, True, False) section4 = wikipedia.getPage(mysite, 'User:AllyUnion/VFD List&section=4', True, True, False) section5 = wikipedia.getPage(mysite, 'User:AllyUnion/VFD List&section=5', True, True, False) section6 = wikipedia.getPage(mysite, 'User:AllyUnion/VFD List&section=6', True, True, False) section7 = wikipedia.getPage(mysite, 'User:AllyUnion/VFD List&section=7', True, True, False)

# Top heading notice = str('This is a list of VFD discussions, updated hourly. \n\n').encode('iso-8859-1')

comment = 'Hourly Automatic Update of VFD List: '

# Newline newline = '\n'

# Temporary Log File logfile = 'tmp/vfd.log'

# Temporary Old Log File difffile = 'tmp/diff-vfd.log'

# Temporary Parse File parsefile = 'tmp/vfd-parse.log'

# Temporary Yesterday Parse File yparsefile = 'tmp/vfd-yparse.log'

# Grep command grepcmd = ' | grep -v \'\''

# Perl command to parse file perlcmd = ' | perl -pi -e \'s//]]/g\''

# Diff command diffcmd = 'diff -u ' + difffile + ' ' + logfile + ' | grep ^+ | grep \'* \[\[\' | perl -pi -e \'s/\*.\[\[Wikipedia:Votes.for.deletion\// /g\' | perl -pi -e \'s/\]\]//g\''

diffcmd2 = 'diff -u ' + difffile + ' ' + logfile + ' | grep ^- | grep \'* \[\[\'| perl -pi -e \'s/\*.\[\[Wikipedia:Votes.for.deletion\// /g\' | perl -pi -e \'s/\]\]//g\''

# Login file, full path and filename
 * 1) 	loginfile = 'pywikipediabot/login.py'

log = file(difffile, 'w') log.write(oldvpage.encode('iso-8859-1')) log.close

# today <= utctime <= onehour if (today <= utctime <= onehour): print 'Operation: Remove top, add new day' # Perform top removal procedure # Get yesterday's VFD and convert # Get today's VFD and convert # Replace sections 6 and 7

# Open log for writing log = file(logfile, 'w')

# Write notice log.write(notice.encode('iso-8859-1'))

# Plus newline log.write(newline.encode('iso-8859-1'))

# Write sections 2, 3, 4, 5, 6 with a newline between each one # Since, we removed section 1, sections 2-6 become our new sections 1-5 log.write(section2.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1')) log.write(section3.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1')) log.write(section4.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1')) log.write(section5.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1')) log.write(section6.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

# Get the VFD page from yesterday vfdpage = vfdlog + str(yesterday.strftime('%Y_%B_')) + str(int(yesterday.strftime('%d'))) toparse = wikipedia.getPage(mysite, vfdpage, True, True, False)

# Write the VFD yesterday to a temporary parse log parselog = file(yparsefile, 'w') parselog.write(toparse.encode('iso-8859-1')) parselog.close

# Yesterday's VFD, parsed into a list yparsecmd = 'cat ' + yparsefile + grepcmd + perlcmd yparsed = commands.getoutput(yparsecmd) yparsed = yparsed.decode('iso-8859-1')

# Link to VFD page # Long Date: example: 2005_January_1 ydate1 = yesterday.strftime('%Y_%B_') + str(int(yesterday.strftime('%d')))

# Short Date: example: January 1 ydate2 = yesterday.strftime('%B') + ' ' + str(int(yesterday.strftime('%d')))

# Give the page name yfind1 =  + ydate2 +  yfind2 = '[[Wikipedia:Votes for deletion/Log/' + ydate1 + '|' + ydate2 + ']]'

# Section space remove yparsed = yparsed.replace('== ', '==') yparsed = yparsed.replace(' ==', '==')

# First, replace it once, so a link is established yparsed = yparsed.replace('==' + ydate2 + '==', '==' + yfind1 + '==', 1)

# Second, if it has been done before, this will fix (hopefully), the internal link to the proper form yparsed = yparsed.replace(yfind2, yfind1, 1)

yplines = yparsed.splitlines; ypnum = yplines.index('==' + yfind1 + '==')

log.write(yplines[ypnum].encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

for x in range(ypnum-1): log.write(yplines[x].encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

for x in range(len(yplines) - ypnum - 1): x = x + ypnum + 1 log.write(yplines[x].encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

# Write yesterday's stuff to the log log.write(newline.encode('iso-8859-1'))
 * 1) 		log.write(yparsed.encode('iso-8859-1'))

# Get the VFD page for today vfdpage = vfdlog + str(today.strftime('%Y_%B_')) + str(int(today.strftime('%d'))) toparse = wikipedia.getPage(mysite, vfdpage, True, True, False)

# Write the VFD page for today to a temporary parse log parselog = file(parsefile, 'w') parselog.write(toparse.encode('iso-8859-1')) parselog.close

# Today's VFD, parsed into a list parsecmd = 'cat ' + parsefile + grepcmd + perlcmd parsed = commands.getoutput(parsecmd) parsed = parsed.decode('iso-8859-1')

# Link to VFD page

# Long Date: example: 2005_January_1 date1 = today.strftime('%Y_%B_') + str(int(today.strftime('%d')))

# Short Date: example: January 1 date2 = today.strftime('%B') + ' ' + str(int(today.strftime('%d')))

# Give the page name find1 =  + date2 +  find2 = '[[Wikipedia:Votes for deletion/Log/' + date1 + '|' + date2 + ']]'

# Section space remove parsed = parsed.replace('== ', '==') parsed = parsed.replace(' ==', '==')

# First, replace it once, so a link is established parsed = parsed.replace('==' + date2 + '==', '==' + find1 + '==', 1)

# Second, if it has been done before, this will fix (hopefully), the internal link to the proper form parsed = parsed.replace(find2, find1, 1)

plines = parsed.splitlines; pnum = plines.index('==' + find1 + '==')

log.write(plines[pnum].encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

for x in range(pnum-1): log.write(plines[x].encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

for x in range(len(plines) - pnum - 1): x = x + pnum + 1 log.write(plines[x].encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

# Write today's stuff to the log log.write(newline.encode('iso-8859-1'))
 * 1) 		log.write(parsed.encode('iso-8859-1'))

# Close the file, making sure all the contents are written to the log log.close

# User:Mozzerati Feature request diffcomment = commands.getoutput(diffcmd) diffcomment = diffcomment.decode('iso-8859-1') difflist = diffcomment.splitlines

diffcomment2 = commands.getoutput(diffcmd2) diffcomment2 = diffcomment2.decode('iso-8859-1') difflist2 = diffcomment2.splitlines

for check in difflist: for checking in difflist2: if (checking[1:] == check[1:]): difflist.remove(check) for x in range(len(difflist) - 1): comment += difflist[x] + ', ' comment += difflist[x+1] + '.'
 * 1) 		for check in difflist:
 * 2) 			comment += check + ', '
 * 3) 		comment[-2:] = '.'

# Reopen the log file log = file(logfile, 'r')

# Read the whole log into a variable post = log.read

# Close log file log.close

# Log in to Wikipedia
 * 1) 		cmd = 'python2.3 ' + loginfile
 * 2) 		os.system(cmd)

page = wikipedia.PageLink(mysite, 'User:AllyUnion/VFD List') # Post to the Wikipedia page.put(post, comment)

cmd = 'rm -f ' + logfile + ' ' + parsefile + ' ' + yparsefile + ' ' + difffile os.system(cmd)

# onehour < utctime <= tomorrow elif (onehour < utctime <= tomorrow): print 'Operation: Normal - Update last section' # Get today's VFD and convert # Replace section 7

# Open log for writing log = file(logfile, 'w')

# Write notice log.write(notice.encode('iso-8859-1'))

# Plus newline log.write(newline.encode('iso-8859-1'))

# Write sections 1, 2, 3, 4, 5, 6 with a newline between each one log.write(section1.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1')) log.write(section2.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1')) log.write(section3.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1')) log.write(section4.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1')) log.write(section5.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1')) log.write(section6.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

# Get the VFD page for today vfdpage = vfdlog + str(today.strftime('%Y_%B_')) + str(int(today.strftime('%d'))) toparse = wikipedia.getPage(mysite, vfdpage, True, True, False)

# Write the VFD page for today to a temporary parse log parselog = file(parsefile, 'w') parselog.write(toparse.encode('iso-8859-1')) parselog.close

# Today's VFD, parsed into a list parsecmd = 'cat ' + parsefile + grepcmd + perlcmd parsed = commands.getoutput(parsecmd) parsed = parsed.decode('iso-8859-1')

# Link to VFD page

# Long Date: example: 2005_January_1 date1 = today.strftime('%Y_%B_') + str(int(today.strftime('%d')))

# Short Date: example: January 1 date2 = today.strftime('%B') + ' ' + str(int(today.strftime('%d')))

# Give the page name find1 =  + date2 +  find2 = '[[Wikipedia:Votes for deletion/Log/' + date1 + '|' + date2 + ']]'

# Section space remove parsed = parsed.replace('== ', '==') parsed = parsed.replace(' ==', '==') # First, replace it once, so a link is established parsed = parsed.replace('==' + date2 + '==', '==' + find1 + '==', 1)

# Second, if it has been done before, this will fix (hopefully), the internal link to the proper form parsed = parsed.replace(find2, find1, 1)

plines = parsed.splitlines; pnum = plines.index('==' + find1 + '==')

log.write(plines[pnum].encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

for x in range(pnum-1): log.write(plines[x].encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

for x in range(len(plines) - pnum - 1): x = x + pnum + 1 log.write(plines[x].encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

# Write today's stuff to the log log.write(newline.encode('iso-8859-1'))
 * 1) 		log.write(parsed.encode('iso-8859-1'))

# Close the file, making sure all the contents are written to the log log.close

# User:Mozzerati Feature request diffcomment = commands.getoutput(diffcmd) diffcomment = diffcomment.decode('iso-8859-1') difflist = diffcomment.splitlines

diffcomment2 = commands.getoutput(diffcmd2) diffcomment2 = diffcomment2.decode('iso-8859-1') difflist2 = diffcomment2.splitlines

for check in difflist: for checking in difflist2: if (checking[1:] == check[1:]): difflist.remove(check) for x in range(len(difflist) - 1): comment += difflist[x] + ', ' comment += difflist[x+1] + '.'
 * 1) 		comment[-2:] = '.'

# Reopen the log file log = file(logfile, 'r')

# Read the whole log into a variable post = log.read

# Close log file log.close

# Log in to Wikipedia
 * 1) 		cmd = 'python2.3 ' + loginfile
 * 2) 		os.system(cmd)

page = wikipedia.PageLink(mysite, 'User:AllyUnion/VFD List') # Post to the Wikipedia page.put(post, comment)

cmd = 'rm -f ' + logfile + ' ' + parsefile + ' ' + difffile os.system(cmd)

# Possibility is that utctime == tomorrow, but should never happen else: sys.exit(1)

sys.exit(0)

en-wp-vfd-list-fix.py

 * 1) !/usr/bin/python2.3
 * 2) Author: Jason Y. Lee (AllyUnion)
 * 3) Purpose: Automatically update a VFD List on User:AllyUnion/VFD List
 * 4) 	  every hour.  Keeps 7 days, presumes for exactly 7 sections
 * 5) 	  on specified page.  (Seven days, seven sections)
 * 6) 	   To be run by a cron job.
 * 7) 	  Also removes the top section once the next UTC day comes

import wikipedia, config import os import commands import sys import datetime

def vfdsection(vfddate): vfdslogfile = 'tmp/vfdsection.log' # Grep command # VFD Page log name vfdlog = "Wikipedia:Votes_for_deletion/Log/" # Which site, as specified in user-config.py	mysite = wikipedia.getSite

# Grep command to parse file grepcmd = ' | grep -v \'\''

# Perl command to parse file perlcmd = ' | perl -pi -e \'s//]]/g\''

vfdpage = vfdlog + str(vfddate.strftime('%Y_%B_')) + str(int(vfddate.strftime('%d')))

fixparse = wikipedia.getPage(mysite, vfdpage, True, True, False)

vfdslog = file(vfdslogfile, 'w') vfdslog.write(fixparse.encode('iso-8859-1')) vfdslog.close

vfdscmd = 'cat ' + vfdslogfile + grepcmd + perlcmd vfdsparsed = commands.getoutput(vfdscmd) vfdsparsed = vfdsparsed.decode('iso-8859-1')

os.system('rm -f ' + vfdslogfile)

vdate1 = vfddate.strftime('%Y_%B_') + str(int(vfddate.strftime('%d'))) vdate2 = vfddate.strftime('%B') + ' ' + str(int(vfddate.strftime('%d'))) vfind1 =  + vdate2 +  vfind2 = '[[Wikipedia:Votes for deletion/Log/' + vdate1 + '|' + vdate2 + ']]' vfdsparsed = vfdsparsed.replace(vdate2, vfind1, 1) vfdsparsed = vfdsparsed.replace(vfind2, vfind1, 1)

return vfdsparsed

if __name__ == "__main__": # Get the dates utc = datetime.datetime.utcnow
 * 1) 	yyyy = int(datetime.datetime.utcnow.strftime('%Y'))
 * 2) 	mm = int(datetime.datetime.utcnow.strftime('%m'))
 * 3) 	dd = int(datetime.datetime.utcnow.strftime('%d'))

# Today's date, exactly at 0000 hours today = utc.replace(hour=0,minute=0,second=0,microsecond=0)

# Today's date, exactly at 1000 hours onehour = utc.replace(hour=1,minute=0,second=0,microsecond=0)
 * 1) 	onehour = datetime.datetime(yyyy, mm, dd, 1, 0, 0, 0)

# Tomorrow's date, exactly at 0000 hours tomorrow = today + datetime.timedelta(1)

# Yesterday's date, exactly at 0000 hours yesterday = today - datetime.timedelta(1)

# Seven days prior to today's date at 0000 hours sevendaysago = today - datetime.timedelta(6)

# Check the time now utctime = datetime.datetime.utcnow

# Wikipedia Variable Setup # VFD Page log name vfdlog = "Wikipedia:Votes_for_deletion/Log/" # Which site, as specified in user-config.py	mysite = wikipedia.getSite

# Page: User:AllyUnion/VFD List and sections
 * 1) 	page = wikipedia.PageLink(mysite, 'User:AllyUnion/VFD List')

# Top heading notice = str('This is a list of VFD discussions, updated hourly. \n\n').encode('iso-8859-1')

# Newline newline = '\n'

# Temporary Log File logfile = 'tmp/vfd.log'

# Temporary Parse File parsefile = 'tmp/vfd-parse.log'

# Temporary Yesterday Parse File yparsefile = 'tmp/vfd-yparse.log'

# Grep command grepcmd = ' | grep -v \'\''

# Perl command to parse file perlcmd = ' | perl -pi -e \'s//]]/g\''

# Login file, full path and filename loginfile = 'pywikipediabot/login.py'

# today <= utctime <= onehour if (today <= utctime <= onehour): # Perform top removal procedure # Get yesterday's VFD and convert # Get today's VFD and convert # Replace sections 6 and 7

# Open log for writing log = file(logfile, 'w')

# Write notice log.write(notice.encode('iso-8859-1'))

# Plus newline log.write(newline.encode('iso-8859-1'))

# Write sections 2, 3, 4, 5, 6 with a newline between each one # Since, we removed section 1, sections 2-6 become our new sections 1-5 datecounter = sevendaysago + datetime.timedelta(2) while datecounter < yesterday: fixsection = vfdsection(datecounter) log.write(fixsection.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1')) datecounter = datecounter + datetime.timedelta(1)

# Get the VFD page from yesterday vfdpage = vfdlog + str(yesterday.strftime('%Y_%B_')) + str(int(yesterday.strftime('%d'))) toparse = wikipedia.getPage(mysite, vfdpage, True, True, False)

# Write the VFD yesterday to a temporary parse log parselog = file(yparsefile, 'w') parselog.write(toparse.encode('iso-8859-1')) parselog.close

# Yesterday's VFD, parsed into a list yparsecmd = 'cat ' + yparsefile + grepcmd + perlcmd yparsed = commands.getoutput(yparsecmd) yparsed = yparsed.decode('iso-8859-1')

# Link to VFD page # Long Date: example: 2005_January_1 ydate1 = yesterday.strftime('%Y_%B_') + str(int(yesterday.strftime('%d')))

# Short Date: example: January 1 ydate2 = yesterday.strftime('%B') + ' ' + str(int(yesterday.strftime('%d')))

# Give the page name yfind1 =  + ydate2 +  yfind2 = '[[Wikipedia:Votes for deletion/Log/' + ydate1 + '|' + ydate2 + ']]'

# Section space remove yparsed = yparsed.replace('== ', '==') yparsed = yparsed.replace(' ==', '==')

# First, replace it once, so a link is established yparsed = yparsed.replace(ydate2, yfind1, 1)

# Second, if it has been done before, this will fix (hopefully), the internal link to the proper form yparsed = yparsed.replace(yfind2, yfind1, 1)

# Write yesterday's stuff to the log log.write(yparsed.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

# Get the VFD page for today vfdpage = vfdlog + str(today.strftime('%Y_%B_')) + str(int(today.strftime('%d'))) toparse = wikipedia.getPage(mysite, vfdpage, True, True, False)

# Write the VFD page for today to a temporary parse log parselog = file(parsefile, 'w') parselog.write(toparse.encode('iso-8859-1')) parselog.close

# Today's VFD, parsed into a list parsecmd = 'cat ' + parsefile + grepcmd + perlcmd parsed = commands.getoutput(parsecmd) parsed = parsed.decode('iso-8859-1')

# Link to VFD page

# Long Date: example: 2005_January_1 date1 = today.strftime('%Y_%B_') + str(int(today.strftime('%d')))

# Short Date: example: January 1 date2 = today.strftime('%B') + ' ' + str(int(today.strftime('%d')))

# Give the page name find1 =  + date2 +  find2 = '[[Wikipedia:Votes for deletion/Log/' + date1 + '|' + date2 + ']]'

# Section space remove parsed = parsed.replace('== ', '==') parsed = parsed.replace(' ==', '==')

# First, replace it once, so a link is established parsed = parsed.replace(date2, find1, 1)

# Second, if it has been done before, this will fix (hopefully), the internal link to the proper form parsed = parsed.replace(find2, find1, 1)

# Write today's stuff to the log log.write(parsed.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

# Close the file, making sure all the contents are written to the log log.close

# Reopen the log file log = file(logfile, 'r')

# Read the whole log into a variable post = log.read

# Close log file log.close

# Log in to Wikipedia
 * 1) 		cmd = 'python2.3 ' + loginfile
 * 2) 		os.system(cmd)

page = wikipedia.PageLink(mysite, 'User:AllyUnion/VFD List') # Post to the Wikipedia page.put(post, 'Fixing VFD List...')

cmd = 'rm -f ' + logfile + ' ' + parsefile + ' ' + yparsefile os.system(cmd)

# onehour < utctime <= tomorrow elif (onehour < utctime < tomorrow): # Get today's VFD and convert # Replace section 7

# Open log for writing log = file(logfile, 'w')

# Write notice log.write(notice.encode('iso-8859-1'))

# Plus newline log.write(newline.encode('iso-8859-1'))

# Write sections 1, 2, 3, 4, 5, 6 with a newline between each one datecounter = sevendaysago# - datetime.timedelta(1) while datecounter < today: fixsection = vfdsection(datecounter) log.write(fixsection.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1')) datecounter = datecounter + datetime.timedelta(1)

# Get the VFD page for today vfdpage = vfdlog + str(today.strftime('%Y_%B_')) + str(int(today.strftime('%d'))) toparse = wikipedia.getPage(mysite, vfdpage, True, True, False)

# Write the VFD page for today to a temporary parse log parselog = file(parsefile, 'w') parselog.write(toparse.encode('iso-8859-1')) parselog.close

# Today's VFD, parsed into a list parsecmd = 'cat ' + parsefile + grepcmd + perlcmd parsed = commands.getoutput(parsecmd) parsed = parsed.decode('iso-8859-1')

# Link to VFD page

# Long Date: example: 2005_January_1 date1 = today.strftime('%Y_%B_') + str(int(today.strftime('%d')))

# Short Date: example: January 1 date2 = today.strftime('%B') + ' ' + str(int(today.strftime('%d')))

# Give the page name find1 =  + date2 +  find2 = '[[Wikipedia:Votes for deletion/Log/' + date1 + '|' + date2 + ']]'

# Section space remove parsed = parsed.replace('== ', '==') parsed = parsed.replace(' ==', '==')

# First, replace it once, so a link is established parsed = parsed.replace(date2, find1, 1)

# Second, if it has been done before, this will fix (hopefully), the internal link to the proper form parsed = parsed.replace(find2, find1, 1)

# Write today's stuff to the log log.write(parsed.encode('iso-8859-1')) log.write(newline.encode('iso-8859-1'))

# Close the file, making sure all the contents are written to the log log.close

# Reopen the log file log = file(logfile, 'r')

# Read the whole log into a variable post = log.read

# Close log file log.close

# Log in to Wikipedia
 * 1) 		cmd = 'python2.3 ' + loginfile
 * 2) 		os.system(cmd)

page = wikipedia.PageLink(mysite, 'User:AllyUnion/VFD List') # Post to the Wikipedia page.put(post, 'Fixing VFD List...')

cmd = 'rm -f ' + logfile + ' ' + parsefile os.system(cmd)

# Possibility is that utctime == tomorrow, but should never happen else: sys.exit(1)

sys.exit(0)

en-wp-vfd-old-update.py

 * 1) !/usr/bin/python2.3
 * 2) -*- coding: utf-8 -*-

import os, sys if (not (sys.path[0] == '')): os.chdir(sys.path[0])

 * 1) Automatic VFD Update script
 * 2) Written by Jason Y. Lee (AllyUnion)
 * 3) Assumes to be run by a cron job, 10 minutes prior to the next 00:00 UTC.
 * 4) Rewritten for any time zone, so it can be run hourly if anyone wishes.

 * 1) Author's note:
 * 2) Yes, I do realize I can make an array for all the variables below
 * 3) but I rather have everything clearly spelled out just to make absolutely
 * 4) certain that whatever error is going on can be clearly seen

import datetime
 * 1) import wikiipedia, config

if __name__ == "__main__": utc = datetime.datetime.utcnow# - datetime.timedelta(1) if (not (utc.replace(hour=23,minute=0,second=0,microsecond=0) <= utc <= (utc.replace(hour=0,minute=0,second=0,microsecond=0) + datetime.timedelta(1)))): sys.exit(1)

# Get today's date:
 * 1) 	yyyy = int(datetime.datetime.utcnow.strftime('%Y'))
 * 2) 	mm = int(datetime.datetime.utcnow.strftime('%m'))
 * 3) 	dd = int(datetime.datetime.utcnow.strftime('%d'))

import wikipedia, config

# Today's date, exactly at 0000 hours # Required as a point of reference today = utc.replace(hour=0,minute=0,second=0,microsecond=0)
 * 1) 	today = datetime.datetime(yyyy, mm, dd, 0, 0, 0, 0)

tag = ''

# Five days prior to today's date at 0000 hours # The day that will be moved to Old fivedaysago = today - datetime.timedelta(5)

# Six days prior to today's date at 0000 hours # The day which we need to search for
 * 1) 	sixdaysago = today - datetime.timedelta(6)

# Today's transinclude
 * 1) 	today_vfdtag = '* Votes for deletion/Log/' + today.strftime('%Y %B ') + str(int(today.strftime('%d'))) + ''

# Five days ago (transinclude) fivedaysago_vfdtag = '* Votes for deletion/Log/' + fivedaysago.strftime('%Y %B ') + str(int(fivedaysago.strftime('%d'))) + ''

# Six days ago (transinclude)
 * 1) 	sixdaysago_vfdtag = '* Votes for deletion/Log/' + sixdaysago.strftime('%Y %B ') + str(int(sixdaysago.strftime('%d'))) + ''

 * 1) 	print today_vfdtag
 * 2) 	print fivedaysago_vfdtag
 * 3) 	print sixdaysago_vfdtag

 * 1) 	import sys
 * 2) 	sys.exit(0)

# Site configured in user-config.py	mysite = wikipedia.getSite

# Get vfd pages vfdold = wikipedia.Page(mysite, 'Wikipedia:Votes_for_deletion/Old').get(False, True)

# Search and replace

# Transinclude on VFD Old # Replace six days ago transinclude with six days ago transinclude + '\n' + five days ago transinclude (once) if (vfdold.find(fivedaysago_vfdtag) == -1): vfdold = vfdold.replace(tag, fivedaysago_vfdtag + '\n' + tag, 1)

# Page links vfdoldpage = wikipedia.Page(mysite, 'Wikipedia:Votes for deletion/Old')

vfdoldpage.put(vfdold, 'VFD Bot (talk) (contributions): Auto-update of VFD Old - Bot work')

en-wp-vfd-yesterday.py

 * 1) !/usr/bin/python2.3
 * 2) -*- coding: utf-8 -*-

import os, sys if (not (sys.path[0] == '')): os.chdir(sys.path[0])

 * 1) Will only run between 00:00 UTC and 01:00 UTC.

import datetime

if __name__ == "__main__": utc = datetime.datetime.utcnow
 * 1) 	if (not (utc.replace(hour=0,minute=0,second=0,microsecond=0) <= utc <= utc.replace(hour=1,minute=0,second=0,microsecond=0))):
 * 2) 		sys.exit

import wikipedia, config

page = 'Wikipedia:Votes for deletion/Log/Yesterday' yesterday = utc.replace(hour=0,minute=0,second=0,microsecond=0) - datetime.timedelta(1)

header = u'' header += '\n' header += '\n' header += '\n' header += ' \'\'\'[ Purge page cache] if page isn\'t updating.\'\'\' \n' header += '\n' header += '\n'

transinclude = u''

footer = u'' footer += '\n\n' footer += '\n' footer += '== VfD footer ==\n' footer += '\n' footer += '\n' footer += '\n' footer += '\n' footer += '\n' footer += '\n' footer += '\n' footer += '&\n' footer += '&\n' footer += 'cs:Wikipedie:Hlasov%C3%A1n%C3%AD_o_smaz%C3%A1n%C3%AD\n' footer += 'da:Wikipedia:Sider_der_b%C3%B8r_slettes\n' footer += 'de:Wikipedia:L%C3%B6schkandidaten\n' footer += 'es:Wikipedia:P%C3%A1ginas para borrar\n' footer += 'eo:Vikipedio:Forigendaj artikoloj\n' footer += 'fi:Wikipedia:Poistettavat sivut\n' footer += 'fr:Wikip%C3%A9dia:Pages_%C3%A0_supprimer\n' footer += 'fy:Wikipedy:Siden wiskje\n' footer += '&\n' footer += 'hu:Wikip%C3%A9dia:Szavaz%C3%A1s_t%C3%B6rl%C3%A9sr%C5%91l\n' footer += 'it:Wikipedia:Pagine da cancellare\n' footer += 'ja:Wikipedia:&\n' footer += '&\n' footer += 'lb:Wikipedia:L%C3%A4schen\n' footer += 'na:Wikipedia:Animwen ijababa\n' footer += 'nl:Wikipedia:Te verwijderen pagina\'s\n' footer += 'no:Wikipedia:Sletting\n' footer += 'pl:Wikipedia:Strony do usuni&\n' footer += 'pt:Wikipedia:P%C3%A1ginas_para_eliminar\n' footer += 'ro:Wikipedia:Pagini de &\n' footer += 'ru:%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9A_%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8E' footer += 'simple:Wikipedia:Requests for deletion\n' footer += 'sk:Wikip%C3%A9dia:Str%C3%A1nky_na_zmazanie\n' footer += 'sl:Wikipedija:Predlogi za brisanje\n' footer += 'sv:Wikipedia:Sidor_som_b%C3%B6r_raderas\n' footer += 'vi:Wikipedia:Bi%E1%BB%83u_quy%E1%BA%BFt_xo%C3%A1_b%C3%A0i\n' footer += 'zh:Wikipedia:&\n'

 * 1) 	text = header.encode('utf-8') + transinclude.encode('utf-8') + footer.encode('utf-8')
 * 2) 	text = text.decode('utf-8')

attempt = True while(attempt): try: wikipedia.Page(wikipedia.getSite, page).put(header + transinclude + footer, 'VFD Bot (talk) (contributions): Updating page with VFD page from ' + yesterday.strftime('%A, %B %d, %Y.')) attempt = False except wikipedia.EditConflict: wikipedia.Page(wikipedia.getSite, page).put(header + transinclude + footer, 'VFD Bot (talk) (contributions): Updating page with VFD page from ' + yesterday.strftime('%A, %B %d, %Y.')) attempt = True

en-wp-vfd-newday.py

 * 1) !/usr/bin/python2.3
 * 2) -*- coding: utf-8 -*-

import os, sys if (not (sys.path[0] == '')): os.chdir(sys.path[0])

 * 1) Automatic VFD Update script
 * 2) Written by Jason Y. Lee (AllyUnion)
 * 3) Assumes to be run by a cron job, some time prior to the next 00:00 UTC.

 * 1) Due to DST errors, the new assumption is that is run hourly, so that no
 * 2) matter what weird time zone this is run from, it will always work
 * 3) Will only run IF time is some time IS between one hour prior to the next
 * 00:00 UTC and 00:00 UTC

import datetime
 * 1) import wikipedia, config

if __name__ == "__main__": utc = datetime.datetime.utcnow# - datetime.timedelta(1) if (not (utc.replace(hour=22,minute=50,second=0,microsecond=0) <= utc <= (utc.replace(hour=0,minute=10,second=0,microsecond=0) + datetime.timedelta(1)))): sys.exit(1)

# Get today's date: import wikipedia, config # Today's date, exactly at 0000 hours # Required as a point of reference today = utc.replace(hour=0,minute=0,second=0,microsecond=0)

# Tomorrow's date, exactly at 0000 hours # The new day going up	tomorrow = today + datetime.timedelta(1)

# Site configured in user-config.py	mysite = wikipedia.getSite

# Section heading for tomorrow sectionheading = '\'\'\'Guide to Votes for Deletion\'\'\' \n' sectionheading += '\n' sectionheading += ' \n' sectionheading += '== ' + tomorrow.strftime('%B ') + str(int(tomorrow.strftime('%d'))) + ' ==\n\n'

# Tomorrow's page name tomorrow_pagename = 'Wikipedia:Votes_for_deletion/Log/' + tomorrow.strftime('%Y_%B_') + str(int(tomorrow.strftime('%d')))

# Post section heading for tomorrow's VFD page tomorrow_page = wikipedia.Page(mysite, tomorrow_pagename) tomorrow_page.put(sectionheading, 'VFD Bot (talk) (contributions): Creating new VFD day - automatic VFD bot work')
 * 1) 	else:
 * 2) 		print "False\n";

en-wp-vfd-update2.py

 * 1) !/usr/bin/python2.3
 * 2) -*- coding: utf-8 -*-

import os, sys if (not (sys.path[0] == '')): os.chdir(sys.path[0])

 * 1) Automatic VFD Update script
 * 2) Written by Jason Y. Lee (AllyUnion)
 * 3) Assumes to be run by a cron job, 10 minutes prior to the next 00:00 UTC.

 * 1) Author's note:
 * 2) Yes, I do realize I can make an array for all the variables below
 * 3) but I rather have everything clearly spelled out just to make absolutely
 * 4) certain that whatever error is going on can be clearly seen

import datetime
 * 1) import wikipedia, config

def stndrdth(n): '''Return the appropriate st, nd, rd, or th to a number Example: stndrdth(2), returns "2nd" as the result''' remain = n % 10 if (remain == 1): if (n == 11): return str(n) + 'th' return str(n) + 'st' elif (remain == 2): if (n == 12): return str(n) + 'th' return str(n) + 'nd' elif (remain == 3): if (n == 13): return str(n) + 'th' return str(n) + 'rd' else: return str(n) + 'th'

if __name__ == "__main__": utc = datetime.datetime.utcnow# - datetime.timedelta(1) if (not (utc.replace(hour=23,minute=0,second=0,microsecond=0) <= utc <= (utc.replace(hour=0,minute=0,second=0,microsecond=0) + datetime.timedelta(1)))): sys.exit(1)

import wikipedia, config

# Get today's date:
 * 1) 	yyyy = int(datetime.datetime.utcnow.strftime('%Y'))
 * 2) 	mm = int(datetime.datetime.utcnow.strftime('%m'))
 * 3) 	dd = int(datetime.datetime.utcnow.strftime('%d'))

# Today's date, exactly at 0000 hours # Required as a point of reference today = utc.replace(hour=0,minute=0,second=0,microsecond=0)
 * 1) 	today = datetime.datetime(yyyy, mm, dd, 0, 0, 0, 0)

# Tomorrow's date, exactly at 0000 hours # The new day going up	tomorrow = today + datetime.timedelta(1)

# Five days prior to today's date at 0000 hours # The day that will be moved to Old fivedaysago = today - datetime.timedelta(5)

# Six days prior to today's date at 0000 hours # The day which we need to search for sixdaysago = today - datetime.timedelta(6)

# Today's transinclude today_vfdtag = '*' + today.strftime('%A, ') + str(int(today.strftime('%d'))) + today.strftime(' %B') + ''

# Tomorrow's transinclude tomorrow_vfdtag = '*' + tomorrow.strftime('%A, ') + str(int(tomorrow.strftime('%d'))) + tomorrow.strftime(' %B') + ''

# Five days ago (transinclude) fivedaysago_vfdtag = '*' + fivedaysago.strftime('%A, ') + str(int(fivedaysago.strftime('%d'))) + fivedaysago.strftime(' %B') + ''

 * 1) 	print fivedaysago_vfdtag
 * 2) 	sys.exit(0)

# Current votes section links # Need: Tomorrow's, today's, and five days ago # Today's	today_sectionlink =  + stndrdth(int(today.strftime('%d'))) +

# Tomorrow's	tomorrow_sectionlink =  + stndrdth(int(tomorrow.strftime('%d'))) +

# Five days ago fivedaysago_sectionlink =  + stndrdth(int(fivedaysago.strftime('%d'))) +

# Old votes section links # Need: Five days ago, and six days ago

# Five days ago fivedaysago_oldsectionlink = '\'\ + stndrdth(int(fivedaysago.strftime('%d'))) + '\'\

# Six days ago # Five days ago
 * 1) 	sixdaysago_oldsectionlink = '\'\ + stndrdth(int(sixdaysago.strftime('%d'))) + '\'\
 * 1) 	fivedaysago_oldsectionlink = '\'\ + stndrdth(int(fivedaysago.strftime('%d'))) + '\'\

# Six days ago # Site configured in user-config.py	mysite = wikipedia.getSite
 * 1) 	sixdaysago_oldsectionlink = '\'\ + stndrdth(int(sixdaysago.strftime('%d'))) + '\'\

# Get vfd pages vfd = wikipedia.Page(mysite, 'Wikipedia:Votes_for_deletion').get(False, True)

# Search and replace

# Section links (taxobox) # Today's section link, replace with today's section link + newline + tomorrow's section link (replace once) vfd = vfd.replace(today_sectionlink, tomorrow_sectionlink + '\n' + today_sectionlink, 1)

# Five days section link + newline, replace with nothing (replace once) vfd = vfd.replace(fivedaysago_sectionlink + '\n', '', 1)

# Six days ago old section link, replace with five days ago old section link + '\n' + six days ago old section link (replace once) # Replace using section title vfd = vfd.replace('==Old votes==', '==Old votes==\n' + fivedaysago_oldsectionlink, 1)
 * 1) 	vfd = vfd.replace(sixdaysago_oldsectionlink, fivedaysago_oldsectionlink + '\n' + sixdaysago_oldsectionlink, 1)

# Transincludes on VFD # Replace today's transinclude with today's transinclude + '\n' + tomorrow's transinclude vfd = vfd.replace(today_vfdtag, tomorrow_vfdtag + '\n' + today_vfdtag, 1)

# Remove five days ago transinclude vfd = vfd.replace(fivedaysago_vfdtag + '\n', '', 1)

# Page links vfdpage = wikipedia.Page(mysite, 'Wikipedia:Votes for deletion')

vfdpage.put(vfd, 'VFD Bot (talk) (contributions): Auto-update of VFD')

en-wp-vfd-update3.py

 * 1) !/usr/bin/python2.3
 * 2) -*- coding: utf-8 -*-

import sys sys.exit(1)

import os, sys if (not (sys.path[0] == '')): os.chdir(sys.path[0])

 * 1) Automatic VFD Update script
 * 2) Written by Jason Y. Lee (AllyUnion)
 * 3) Assumes to be run by a cron job, 10 minutes prior to the next 00:00 UTC.

 * 1) Author's note:
 * 2) Yes, I do realize I can make an array for all the variables below
 * 3) but I rather have everything clearly spelled out just to make absolutely
 * 4) certain that whatever error is going on can be clearly seen

import datetime
 * 1) import wikipedia, config

def stndrdth(n): '''Return the appropriate st, nd, rd, or th to a number Example: stndrdth(2), returns "2nd" as the result''' remain = n % 10 if (remain == 1): if (n == 11): return str(n) + 'th' return str(n) + 'st' elif (remain == 2): if (n == 12): return str(n) + 'th' return str(n) + 'nd' elif (remain == 3): if (n == 13): return str(n) + 'th' return str(n) + 'rd' else: return str(n) + 'th'

if __name__ == "__main__": utc = datetime.datetime.utcnow# - datetime.timedelta(1)
 * 1) 	if (not (utc.replace(hour=23,minute=0,second=0,microsecond=0) <= utc <= (utc.replace(hour=0,minute=0,second=0,microsecond=0) + datetime.timedelta(1)))):
 * 2) 		sys.exit(1)

import wikipedia, config

# Get today's date:
 * 1) 	yyyy = int(datetime.datetime.utcnow.strftime('%Y'))
 * 2) 	mm = int(datetime.datetime.utcnow.strftime('%m'))
 * 3) 	dd = int(datetime.datetime.utcnow.strftime('%d'))

# Today's date, exactly at 0000 hours # Required as a point of reference today = utc.replace(hour=0,minute=0,second=0,microsecond=0)
 * 1) 	today = datetime.datetime(yyyy, mm, dd, 0, 0, 0, 0)

# Tomorrow's date, exactly at 0000 hours # The new day going up	tomorrow = today + datetime.timedelta(1)

# Five days prior to today's date at 0000 hours # The day that will be moved to Old fivedaysago = today - datetime.timedelta(5)

# Six days prior to today's date at 0000 hours # The day which we need to search for sixdaysago = today - datetime.timedelta(6)

# Today's transinclude today_vfdtag = '*' + today.strftime('%A, ') + str(int(today.strftime('%d'))) + today.strftime(' %B') + ''

# Tomorrow's transinclude tomorrow_vfdtag = '*' + tomorrow.strftime('%A, ') + str(int(tomorrow.strftime('%d'))) + tomorrow.strftime(' %B') + ''

# Five days ago (transinclude) fivedaysago_vfdtag = '*' + fivedaysago.strftime('%A, ') + str(int(fivedaysago.strftime('%d'))) + fivedaysago.strftime(' %B') + ''

 * 1) 	print fivedaysago_vfdtag
 * 2) 	sys.exit(0)

# Site configured in user-config.py	mysite = wikipedia.getSite

# Get vfd pages pagename = wikipedia.Page(mysite, 'WP:NAC').getRedirectTo vfd = wikipedia.getPage(mysite, pagename, True, True, False)
 * 1) 	vfd = wikipedia.getPage(mysite, 'Wikipedia:Votes_for_deletion', True, True, False)

# Search and replace

# Transincludes on VFD # Replace today's transinclude with today's transinclude + '\n' + tomorrow's transinclude vfd = vfd.replace(today_vfdtag, tomorrow_vfdtag + '\n' + today_vfdtag, 1)

# Remove five days ago transinclude vfd = vfd.replace(fivedaysago_vfdtag + '\n', '', 1)

# Page links vfdpage = wikipedia.Page(mysite, pagename)

vfdpage.put(vfd, 'VFD Bot (talk) (contributions): Updating Votes for deletion section')

title: User:AllyUnion/VFD bot code


text: User talk:62.135.63.233

title: User talk:62.135.63.233


text:
Vibert

Vibert may refer to the following notable people:

 * Given name
 * Vibert Douglas (1894–1988), Canadian astronomer
 * Vibert Greene (born 1960), Barbadian cricketer

 * Surname
 * Jean-Pierre Vibert (1777–1866), French rosarian
 * Jehan Georges Vibert (1840–1902), French academic painter
 * Luke Vibert (born 1973), a British recording artist and producer
 * Mike Vibert (born 1950), Minister for Education, Sport and Culture in Jersey
 * Ronan Vibert (1964–2022), Welsh actor
 * Ted Vibert (born 1938), politician in the States of Jersey

title: Vibert


text:
Wikipedia:Articles for deletion/Jason Abraham

 This page is an archive of the discussion about the proposed deletion of the article below. This page is no longer live. Further comments should be made on the article's talk page rather than here so that this page is preserved as an historic record. The result of the debate was DELETE. jni 17:45, 11 Feb 2005 (UTC)

Jason Abraham
It may be a common name...don't know about famous though... — Knowledge Seeker দ (talk) 08:47, 4 Feb 2005 (UTC) This page is now preserved as an archive of the debate and, like some other VfD subpages, is no longer 'live'. Subsequent comments on the issue, the deletion, or the decision-making process should be placed on the relevant 'live' pages. Please do not edit this page.
 * Delete, Looks like vanity to me. Inter 10:15, 4 Feb 2005 (UTC)
 * Delete. I would call it vanity, except his biggest claim to fame is having a common name. Average Earthman 13:17, 4 Feb 2005 (UTC)
 * Delete. Autobiography writing attempt. jni 13:44, 4 Feb 2005 (UTC)
 * Delete or move it to the user page of the person who created it, assuming that person decides to create an account. (Otherwise we'll have to start getting into arguments about whether his name or my name is more common.) -Aranel (" Sarah ") 21:06, 4 Feb 2005 (UTC)
 * Delete, article does not establish notability, vanity. Megan1967 01:42, 5 Feb 2005 (UTC)
 * Speedy Delete as user test. Wyss 23:05, 5 Feb 2005 (UTC)
 * Delete!. --Neigel von Teighen 23:07, 5 Feb 2005 (UTC)


text: File:Slayer-DiabolusInMusica.jpg

title: File:Slayer-DiabolusInMusica.jpg


text: File:Slayer-HauntingTheChapel.jpg

title: File:Slayer-HauntingTheChapel.jpg


text: Category:Communes of Indre-et-Loire

title: Category:Communes of Indre-et-Loire


text:
File:Slayer-LiveIntrusion.jpg

 This image is being linked here; though the picture is subject to copyright I M3tal H3ad feel it is covered by the U.S. fair use laws because: Live Intrusion
 * It is a low resolution copy of a CD album cover;
 * It does not limit the copyright owner's rights to sell the CD album in any way;
 * Copies could not be used to make illegal copies of the album artwork on another CD;
 * The image on the cover is significant because it was made by a famous artist, Slayer.

authors: ಮಲ್ನಾಡಾಚ್ ಕೊಂಕ್ಣೊ

title: File:Slayer-LiveIntrusion.jpg


text: File:Slayer-LiveUndead.jpg

title: File:Slayer-LiveUndead.jpg


text:
Berlin Decree

The Berlin Decree was issued in Berlin by Napoleon on November 21, 1806, after the French success against Prussia at the Battle of Jena, which led to the Fall of Berlin. The decree was issued in response to the British Order-in-Council of 16 May 1806 by which the Royal Navy instituted a blockade of all ports from Brest to the Elbe.

The decree proclaimed that "the British Isles are declared to be in a state of blockade" and forbade all correspondence or commerce with Great Britain. All British subjects found in the territory of France or its allies were to be arrested as prisoners of war and all British goods or merchandise seized. Any vessel found contravening the decree and landing in a continental port from a port of Britain or its colonies was to be treated as if it were British property and therefore liable to confiscation, along with all of its cargo.

The goal of the so-called Continental System was to force Britain's government to the peace table by starving its people of trade with Europe and thereby wrecking her economy. However, the blockade's effectiveness was difficult to enforce over so vast an area and was generally unpopular among French subjects and allies. Historian Paul Schroeder considers it to have proved an ineffective method of economic warfare.

The Continental System eventually led to economic ruin for France and its allies. Less damage was done to the economy of Britain, which had control of the Atlantic Ocean trade. Other European nations removed themselves from the Continental System, which led in part to the downfall of Napoleon.

The Milan Decree, for the same purpose, was issued the following year.

title: Berlin Decree


text:
File:Slayer-StillReigning.jpg

Still Reigning DVD Cover by Slayer

Fair Use Rationale

 * 1) This image illustrates the text next to which it appears, which describes the DVD in question for which it promotes.
 * 2) It is lower resolution than the original (copies made from it will be of very inferior quality).
 * 3) It does not limit the copyright owner's rights to market or sell the work in any way.
 * 4) The image is being used in an informative way and should not detract from the original work.
 * 5) No free or public domain images have been located for this item.

title: File:Slayer-StillReigning.jpg


text:
File:Slayer-UndisputedAttitude.jpg

Summary
Cover of Slayer's 1996 album Undisputed Attitude. Source:

Fair use for Undisputed Attitude and Slayer discography
 This image is being linked here; though the picture is subject to copyright, I feel it is covered by the U.S. fair use laws because:
 * It is a low resolution copy of a CD album cover
 * It is used to portray the album cover in question
 * It does not limit the copyright owner's rights to sell the CD album in any way;
 * Copies could not be used to make illegal copies of the album artwork on another CD;
 * The image on the cover is significant because it was made by a famous artist, Slayer.

authors: ಮಲ್ನಾಡಾಚ್ ಕೊಂಕ್ಣೊ

title: File:Slayer-UndisputedAttitude.jpg


text:
File:Slayer-WarAtTheWarfield.jpg

Fair Use Rationale for War at the Warfield

 * 1) This image illustrates the text next to which it appears, which describes the DVD in question for which it promotes.
 * 2) It is lower resolution than the original (copies made from it will be of very inferior quality).
 * 3) It does not limit the copyright owner's rights to market or sell the work in any way.
 * 4) The image is being used in an informative way and should not detract from the original work.
 * 5) No free or public domain images have been located for this item.

title: File:Slayer-WarAtTheWarfield.jpg


text:
Tethea ocularis

Tethea ocularis, the figure of eighty, is a moth of the family Drepanidae. The species was first described by Carl Linnaeus in his 1767 12th edition of Systema Naturae. It is found throughout Continental Europe and has a scattered distribution in England and Wales, although it is absent from Scotland and Ireland.

The wingspan is 35–45 mm; the dark brown forewings being marked with dark-centred white stigmata which do look rather like the number 80. The hindwings are grey. The species flies from May to July and is attracted to light and sugar.

The grey and white larva feeds on poplar and aspen. The species overwinters as a pupa.

Subspecies

 * Tethea ocularis ocularis
 * Tethea ocularis ocularis amurensis (Warren, 1912) (Russian Far East, north-eastern and northern China, Mongolia, Korea)
 * Tethea ocularis opa Zolotuhin, 1997 (Uzbekistan, China: Xinjiang)
 * Tethea ocularis osthelderi (Bytinski-Salz & Brandt, 1937) (Iran)
 * Tethea ocularis tanakai Inoue, 1982 (Japan)

 * 1)  The flight season refers to the British Isles. This may vary in other parts of the range.

title: Tethea ocularis


text:
Malcolm Hardee

Malcolm Hardee (5 January 1950 – 31 January 2005) was an English comedian and comedy club proprietor.

His high reputation among his peers rests on his outrageous publicity stunts and on the help and advice he gave to successful British alternative comedians early in their careers, acting as "godfather to a generation of comic talent in the 1980s". Fellow comic Rob Newman called him "a hilarious, anarchic, living legend; a millennial Falstaff", while Stewart Lee wrote that "Malcolm Hardee is a natural clown who in any decent country would be a national institution" and Arthur Smith described him as "a South London Rabelais" and claimed that "everything about Malcolm, apart from his stand-up act, was original".

Hardee was also a compère and talent-spotting booker at his own clubs, particularly The Tunnel Club in Greenwich, South East London, which gave early exposure to up-and-coming comedians during the early years of British alternative comedy. In his obituary, The Times opined that "throughout his life he maintained a fearlessness and an indifference to consequences" and one journalist claimed: "To say that he has no shame is to drastically exaggerate the amount of shame that he has". In a publicity quote printed in Hardee's autobiography I Stole Freddie Mercury's Birthday Cake, Arthur Smith wrote that Hardee had "led his life as though for the perfect autobiography and now he has paid himself the compliment of writing it."

Early life
Hardee was born in Lewisham, South East London, near the River Thames, and came from a long line of lightermen who earned their living on tugs pulling barges on the river. He was the eldest son of Frank and Joan Hardee. He spent his first two years in an orphanage while his mother was in hospital with tuberculosis and was educated at three South East London schools – St Stephen's Church of England primary, Colfe's School, and Sedgehill comprehensive.

Expelled from the latter two schools he drifted into petty crime: stealing Coca-Cola from a local bottling plant, burgling a pawnbrokers and setting fire to a Sunday school piano because he wanted to see "holy smoke". He served prison sentences for cheque fraud, burglary and escaping custody; in 1967, he escaped from Gaynes Hall Borstal dressed as a monk. He also had convictions for arson and once infamously stole a Rolls-Royce which he believed belonged to British cabinet minister Peter Walker. (Walker later wrote to Hardee after reading about this widely reported story and denied it had been his car.)

Hardee decided to turn to showbusiness as a way of staying out of trouble, saying: "There are only two things you can do when you come out of prison and you want immediate employment. You can either be a minicab driver or you can go into showbusiness" and "Prison is like mime or juggling – a tragic waste of time".

Acts and stunts
After coming out of prison in 1977 or 1978 (sources vary), Hardee joined Martin Soan's The Greatest Show on Legs – at the time, a one-man adult Punch and Judy act. Revamped as a surreal sketch group, The Greatest Show on Legs became a regular at the Tramshed venue in Woolwich, alongside the likes of Rik Mayall and Ade Edmondson. Soon afterwards, in 1979, The Comedy Store opened in Soho and The Greatest Show on Legs became regulars there, too. Their breakthrough came in 1982, when they performed their Naked Balloon Dance on Chris Tarrant's anarchic late-night TV show O.T.T.

In 1987, as one of his many publicity stunts, Hardee stood for Parliament in the famous 1987 Greenwich by-election, as the "Rainbow Dream Ticket, Beer, Fags & Skittles Party" candidate, polling 174 votes. He stood again in the 1992 election in order to publicise his comedy club because the election rules allowed him a free mailshot to all registered voters in the constituency.

Hardee regularly appeared in his own shows at the Edinburgh Fringe. The Greatest Show on Legs debuted there in 1982. Arguably his most infamous confirmed stunt there was in 1983 when, performing at The Circuit venue – a series of three adjoining tents in a construction site with a different show in each tent – he became annoyed by what he regarded as excessive noise emanating nightly from Eric Bogosian's neighbouring performance tent. Hardee obtained a nearby tractor and, entirely naked, drove it across Bogosian's stage during his performance. Rivalling this stunt in Fringe infamy, in 1989, Hardee and Arthur Smith wrote a rave 5-star review of Hardee's own Fringe show and successfully managed to get it printed in The Scotsman under the byline of the influential newspaper's comedy critic. At the Fringe in 1996, The Independent reported that he attempted to sabotage American ventriloquist David Strassman's Edinburgh show by abducting the act's hi-tech dummy, holding it to ransom and sending it back to Strassman piece by piece in return for hard cash. The plan failed.

Perhaps the most-quoted anecdote concerning Hardee was that, on 9 October 1986 his house was searched by the police – who were looking for crumbs – two days after he and others stole Freddie Mercury's £4,000 40th birthday cake. No crumbs were found at the house as he had already by then donated the cake to a local nursing home. He used this incident as the title of his 1996 autobiography I Stole Freddie Mercury's Birthday Cake which he wrote with John Fleming. In another encounter with the police, Hardee was once questioned by Special Branch officers after being found on the balcony outside government minister Michael Heseltine's hotel room, wearing nothing but a pair of socks and a leather coat containing £5,200 in cash and a pack of pornographic playing cards. He had mistaken the room for that of a friend.

Collaborator John Fleming said of him that "At home, he occasionally put a live goldfish in his mouth to get attention – I saw him do it twice. It was often said of Malcolm, with a lot of justification, that he never had a stage act – his life was his act."

In his autobiography, Hardee claimed he was the first to attempt the 'banger-up-the-bum' routine, later perfected and performed by Greatest Show on Legs co-star Chris Lynam, in which a firework (occasionally a three-stage Roman Candle) was clenched between the buttocks and lit to a recording of Ethel Merman singing "There's No Business Like Show Business".

The claim for which Hardee was arguably best known throughout his performing life was that he was said to have "the biggest bollocks in show business" and he became renowned for a rarely performed but vividly unforgettable act in which he would use his own spectacles atop his genitals to create a unique visual impression of French President Charles de Gaulle with his testicles representing the politician's cheeks; this act pre-dated the Australian show Puppetry of the Penis by several years.

Hardee rarely appeared on television, though he did play minor roles in six Comic Strip TV films and one episode in the first series of Blackadder.

Clubs
Hardee was also renowned as a talent spotter and owner of clubs which gave vital early exposure to up-and-coming comedians including Charlie Chuck, Alan Davies, Harry Enfield, Harry Hill, Paul Merton, Vic Reeves, Frank Skinner, Johnny Vegas and Jo Brand, with whom he had a two-year affair and whom he persuaded to become a comedian. He hosted the first-ever outing of the new circus group Ra-Ra Zoo, who performed comedy mime to a, for once, silenced audience. He also worked for a time as the manager of Jerry Sadowitz and was an occasional promoter and tour manager for his friend and neighbour Jools Holland.

His most infamous venue was The Tunnel Club, which he opened in 1984 next to the southern exit from the Blackwall Tunnel in Greenwich, South East London. He would sometimes introduce inexperienced stand-ups to audiences with the nerve-jangling line: "This next act's probably a bit shit", but once their performance was finished, he would often comfort those he thought showed promise with backstage words of encouragement and urge them to try again. According to Stewart Lee, he would often insult comedians after they had finished their acts while also simultaneously praising them, as a way of protecting their dignity. Lee notes that after his first gig he did for him, Hardee said "That was Stewart Lee. Started off well, got worse, by the end he was shit". His advice to comics who were concerned that a joke might be offensive to an audience was: "If you think it’s funny, then fuck ’em."

At his weekly Sunday Night at the Tunnel Palladium shows, sometimes even experienced and accomplished comedians failed to complete a whole set against the unforgiving crowd and razor-sharp heckling. When the club became established, it attracted groups of men apparently from the suburb of Eltham who Hardee referred to as 'Herberts'. They were usually drunk and attending the Tunnel club as it offered after hours drinks on a Sunday night, a rarity back then. They usually ended the evening by fighting, fortunately usually between themselves, leaving everybody else as spectators. It was at the Tunnel Club that comedian Jim Tavare once began his act with the unwise opener, "Hello, I'm a schizophrenic" – to be met with the lightning rejoinder from a heckler in that night's audience, "Well, you can both fuck off then!". Julian Clary together with Fanny the Wonder dog were surprising hits at such evenings.

The Tunnel closed in 1988 and, in 1991, Hardee opened the Up The Creek comedy club in Creek Road, Greenwich. In an upstairs bar at the club was a mural commissioned by Hardee as a parody of Leonardo da Vinci's The Last Supper. It showed Hardee as Christ with Jo Brand, Julian Clary and other famous British comedians as the Disciples including Ben Elton as Judas Iscariot. In 2001, after he sold his percentage in Up The Creek, Hardee took over a floating pub, The Wibbley Wobbley, on a converted Rhine pleasure cruiser in Greenland Dock, Rotherhithe, by the River Thames.

Death and legacy
On 2 February 2005, Hardee's body was recovered from Greenland Dock, after he was reported missing from The Wibbley Wobbley on 31 January; he had been last seen late-night on 30 January. A post-mortem soon confirmed he had drowned. In an inquest at Southwark Coroner's Court on 20 July, Coroner John Sampson recorded a verdict of accidental death. It had been assumed in several reports of his death that, while trying to make his way home by dinghy from The Wibbley Wobbley to his houseboat The Sea Sovereign just fifteen yards away across Greenland Dock, Hardee had lost his balance and drowned while drunk. But the Coroner found that, whilst attempting to access The Sea Sovereign from the quayside, Hardee had fallen into the dock while drunk.

Police constable Martin Spirito told the court that, on 2 February: "The search commenced at 10:00am. At 10:24am one of the officers came up and said he had found a lifeless body. I followed the officer's line down. Six metres down I saw a white male. The male had a bottle of beer clenched in his right hand." Police sergeant Roy Dawson, in charge of overseeing the dive, told the court: "The bottle was held in his right hand. It fell from his hand on the ascent."

Hardee's date of death is usually said to be 31 January, although Coroner John Sampson said, "He was last seen on the quayside outside the Wibbly Wobbly public house at about 6am on Sunday January 30".

About 700 people attended his funeral at St Alfege's Church in Greenwich. Jo Brand, Arthur Smith, Stewart Lee and his son Frank Hardee all delivered eulogies, and the musician Jools Holland played the piano. He was cremated at Hither Green in South East London.

In June 2005, there were two tribute shows at the Glastonbury Festival; in July, a BBC Radio 4 documentary tribute; and, in August, two tribute shows at the Edinburgh Fringe. There were five-hour tribute shows at the Hackney Empire theatre in London on 5 February 2006 and 28 January 2007 to commemorate the anniversary of his death.

The Annual Malcolm Hardee Awards (2005–present)
The Malcolm Hardee Award for Comic Originality are awards given annually at the Edinburgh Fringe Festival "for comic originality of thought or performance". Previous winners:

 * 2005 – Reggie Watts
 * 2006 – No award presented
 * 2007 – Doktor Cocacolamcdonalds
 * 2008 – Edward Aczel (nominees: Aindreas de Staic, The Fringe Box Office, Peter Buckley Hill, Otto Kuhnle)
 * 2009 – Otto Kuhnle (nominees: Three Gaga Heads, Tim Key, Joey Page, George Ryegold)
 * 2010 – Robert White (nominees: Doctor Brown, Bo Burnham, Lewis Schaffer, Bob Slayer)
 * 2011 – Johnny Sorrow (nominees: Doctor Brown, James Hamilton, Bob Slayer)
 * 2012 – The Rubberbandits (nominees: James Hamilton, Simon Munnery)
 * 2013 – Adrienne Truscott (nominees: Ursula Burns, Red Bastard)
 * 2014 – Candy Gigi (nominees The Birdmann, Michael Brunström)
 * 2015 – Michael Brunström (nominees: Richard Gadd, The Story Beast, Mr Twonkey/Paul Vickers)
 * 2016 – Mr Twonkey/Paul Vickers (nominees The Baby (in Come Look at The Baby), Foxdog Studios, Arthur Smith)
 * 2017 – Terry Alderton (nominees: Rob Kemp, Elf Lyons, Mark Dean Quinn.
 * 2018 - no award presented
 * 2019 - Julia Masli & The Duncan Brothers: LEGS (nominees Charles Quarterman, Jimmy Slim and Lewis Blomfield, Joz Norris, President Obonjo, Sean Morley)
 * 2020 - (No Award made/ No Edinburgh Fringe because of the Covid pandemic)
 * 2021 - (No Award made/ No Edinburgh Fringe because of the Covid pandemic)
 * 2022 - The Flop: A Band of Idiots (nominee: Mr Chonkers)
 * 2023 - Phil Ellis (nominees: Stephen Catling, Ivor Dembina, Mark Silcox)

The Malcolm Hardee Cunning Stunt Award is given for the best Fringe publicity stunt of the year. Previous winners:

 * 2008 – Gill Smith, awarded retrospectively in 2009, for nominating herself for a Malcolm Hardee award and putting "Malcolm Hardee Award Nominee" on her posters
 * 2009 – Lewis Schaffer, after convincing several publications he was sponsoring the Edinburgh Comedy Awards (or "Lewies") for the modest sum of £99 (nominees: Shed Simove, Oliver Moore, Jennifer Warren and Charlotte Jo Hanbury)
 * 2010 – Stewart Lee, for successfully encouraging people to vote for little-known Japanese act Frank Chickens in a poll for best fringe performer (nominees: Manos The Greek, Arthur Smith)
 * 2011 – Kunt and the Gang and Bob Slayer, for getting fans to put stickers depicting penises on the posters of rival acts (nominees: Tim FitzHigham, Sanderson Jones)
 * 2012 – Stuart Goldsmith, for YouTube videos about the censorship of his show Prick (nominees Nathan Cassidy, Chris Dangerfield)
 * 2013 – Barry Ferns, for printing fake copies of Broadway Baby which gave his show 6-out-of-5 star reviews and reported that his show had been nominated for the Fosters Comedy Awards, in both the main category and the newcomer category. (nominees: Richard Herring, Lewis Schaffer, Gareth Morinan)
 * 2014 – Christian Talbot, for using his 12-year-old daughter Kate to go up to strangers, looking sad, asking them, "Have you seen my daddy?", and if they said "No" she would hand out flyers to them. (nominees Luke McQueen, Mark Dean Quinn)
 * 2015 – Matt Roper, for hacking into the Facebook account of Malcolm Hardee judge Kate Copstick and posting fake messages "bigging himself up". (nominees Miss Behave, Abigoliah Schamaun)
 * 2016 – Becky Fury, for claiming on her flyer she was a 'Last Minute Comedy finalist’ - implying it was for the last minute.com awards when, in fact, it was for a Hertfordshire comedy club contest (nominees: Richard Gadd, Arthur Smith)
 * 2017 – Mark Dean Quinn, for putting other acts’ stars and quotes on his own flyers and thus undermining the ’star’ system. (nominees Damian Kingsley, Martha McBrier)
 * 2018 - no award presented
 * 2019 - West End Producer, for using quotes from the names of normal people with the same names are reviewers. (nominees: Jimmy Slim & Lewis Blomfield, E4 and BBC Studios)
 * 2020 - (No Award made/ No Edinburgh Fringe because of the Covid pandemic)
 * 2021 - Will Mars, for mirroring the Dave TV channel's 'Dave's Joke Of The Fringe' (not awarded in 2021) by announcing that the '(Some guy called) Dave Joke of the Fringe 2021' was won by Masai Graham... The winner was chosen by a random member of the public called Dave whom Mars found by walking up the Royal Mile in Edinburgh.
 * 2022 - Ivor Dembina, for his reaction to the Edinburgh bin collection strike, promoting the growing piles of uncollected rubbish as performance art.
 * 2023 - (nominees: Batsu!, Lee Kyle, Tom Mayhew)

The Malcolm Hardee 'Act Most Likely to Make a Million Quid' Award was started in 2010

 * 2010 – Bo Burnham (nominee: Greg Davies)
 * 2011 – Benet Brandreth (nominee: Josh Widdicombe)
 * 2012 – Trevor Noah (nominees: Tim FitzHigham, The Rubberbandits)
 * 2013 – No award presented
 * 2014 – Luisa Omielan (nominees: Peter Buckley Hill (would have won 'The Malcolm Hardee 'Act Least Likely to Win a Million Quid' Award’))
 * 2015 – Laurence Owen (nominees Sarah Callaghan, Phil Ellis, Al Porter)
 * 2016 - ’The Baby' (nominees Foxdog Studios, Al Porter, Arthur Smith; The Baby was added in by the judges after the nominations were first announced)
 * 2017 - Rob Kemp (nominee: Al Porter)
 * 2018 - no award presented
 * 2019 - President Obonjo (Nominees Candy Gigi, Catherine Cohen, Sophie Duker and Tom Crosbie)
 * 2020 - (No Award made/ No Edinburgh Fringe because of the Covid pandemic)
 * 2021 - (No Award made/ No Edinburgh Fringe because of the Covid pandemic)
 * 2022 - Jerry Sadowitz
 * 2023 - Julia Masli (nominees: Sam Campbell, Larry Owens, Seymour Mace, Natalie Perlin

The Malcolm Hardee ‘Pound of Flesh' Award was given in 2013 to an act which created "the kind of publicity money cannot – and perhaps should not – buy"

 * 2013 – Gareth Ellis (and Richard Rose), for faking a story that they had been attacked in the street following bad reviews, which involved Rose punching Ellis so he got a black eye.

The Malcolm Hardee FirstMinute Award was given in 2016, to the show with the funniest first minute (to spoof the Edinburgh Comedy Awards that year being sponsored by lastminute.com).

 * 2016 - Cat Call, performed by Cally Beaton and Catherine Bohart

Writing

 * I Stole Freddie Mercury's Birthday Cake (autobiography; co-writer John Fleming) Fourth Estate, 1996. ISBN 1-85702-385-4.
 * Sit-Down Comedy (anthology, ed Malcolm Hardee & John Fleming) Ebury Press/Random House, 2003. ISBN 0-09-188924-3.

Hardee also wrote a number of columns in comedy magazines in which he gave tips and told anecdotes about life as a comic.

title: Malcolm Hardee


text:
Haunting the Chapel

Haunting the Chapel is an extended play (EP) released by American thrash metal band Slayer in 1984 through Metal Blade and Enigma Records. Slayer's debut album Show No Mercy became Metal Blade's highest-selling, leading to producer Brian Slagel wanting to release an EP. Recorded in Hollywood, the recording process proved difficult when recording drums in a studio without carpet, although it resulted in drummer Dave Lombardo meeting Gene Hoglan who was to become an influence in his drumming style and speed. It was during the recording of this session that Lombardo first had the double bass added to his kit. Hoglan, working for Slayer at the time, sat at the kit and played a double bass for the first time. Lombardo was impressed and although Hoglan never gave him lessons, he did give him tips regarding the use of the double kick drum.

Although originally featuring three songs, the record evidences a marked evolution from the style of their previous album, Show No Mercy, and is considered the first demonstration of the band's "classic" style displayed on later albums and is often described as a "stepping stone". The songs "Captor of Sin" and "Chemical Warfare" were regularly featured on the band's live set list. "Chemical Warfare" appears in Guitar Hero: Warriors of Rock.

Recording
Slayer's previous album, Show No Mercy, had sold over 40,000 copies worldwide and the band were performing the songs "Chemical Warfare" and "Captor of Sin" live, which made producer Brian Slagel want to release an EP. The album was recorded in Hollywood with sound engineer Bill Metoyer, in a studio with no carpet which was a problem while recording the drums. Slagel was acting as executive producer. Metoyer is Christian and the lyrics from Show No Mercy did not bother him. However, the first words Araya sang when recording Haunting the Chapel were "The holy cross, symbol of lies, intimidates the lives of Christian born", and other anti-religious lyrics; Metoyer thought he would go to Hell for his part in recording the lyrics. These lyrical themes were inspired by the band Venom, who influenced King and was also into the Satanic image.

Slayer drummer Dave Lombardo set his drum kit on the concrete and the kit went "all over the place" while playing. Lombardo asked Gene Hoglan to hold his kit together, while recording "Chemical Warfare", with Hoglan thinking, "I hope he does this in one or two takes, because this is rough." Hoglan was coaching Lombardo how to use double-bass drums to improve his drumming ability and speed; Lombardo asserts Hoglan was "an amazing double-bass player even back then", although it was Hoglan's first time playing the double bass. Eddy Schreyer provided audio mastering and digital remastering, with the cover art design created by Vince Gutierrez. Haunting the Chapel was darker and more thrash-oriented than Show No Mercy, and laid the groundwork for the future direction in the band's sound.

Touring
Hoglan worked as a roadie for the band after their lighting guy did not show up one night, and performed Lombardo's soundchecks. Slayer and Hoglan would play Dark Angel songs during soundchecks, which is how Hoglan eventually joined Dark Angel. Hoglan approached Dark Angel guitarist Jim Durkin: "He came up to me one day and started giving me his criticisms of the band. He said we needed to be more evil. And then he goes, 'By the way, I'm a better drummer than the guy you have in Dark Angel right now.'"

Hoglan was fired as he thought a roadie only did lighting, while vocalist Tom Araya's brother Johnny Araya would do all roadie duties, such as moving equipment, working with sound and lights, and setting up the stage. The band performed a show in Seattle in front of a crowd of 1500, the largest show they performed at the time, supporting Metal Church, and in Texas played with a band also called Slayer in San Antonio. However, it was the San Antonio Slayer's goodbye show.

Reception
Although the EP did not enter any charts, Eduardo Rivadavia of AllMusic awarded the EP three out of five stars. Rivadavia said Haunting the Chapel was a "stepping stone" that "offers important clues about this transition period, which saw Slayer's rock-based song structures give way to the non-linear, genre-defining style thereafter regarded as thrash metal's signature sound." The tracks "Chemical Warfare" and "Captor of Sin" are played at Slayer's live shows regularly.

Vocalist Karl Willetts of the death metal band Bolt Thrower asserts the record was an inspiration for the band: "When Slayer's Haunting the Chapel came out I had never heard anything like that before with that style of guitar playing. We were punks and heavy metal was alien to our upbringing. And other bands we heard like Venom, Slaughter and Metallica. So we took the elements of musicianship from metal and the aggression of punk and poured it all together." Chuck Schuldiner of the band Death said the record was "life changing at the time" asserting, "That was some of the early stuff that gave me that push."

The black metal band Perverseraph covered "Chemical Warfare" on a tribute CD to Slayer titled Gateway to Hell, Vol. 2: A Tribute to Slayer. Thrash metal band Equinox also made an appearance on the album covering "Haunting the Chapel". Melodic death metal band At the Gates released "Captor of Sin" on a 2002 re-issue of their 1995 album Slaughter of the Soul.

Bonus track (re-issue)
The re-issue features a bonus track previously found on the Metal Massacre Vol. 3 compilation and some vinyl and cassette copies of Show No Mercy

Personnel

 * Tom Araya – bass, vocals
 * Kerry King – guitars
 * Jeff Hanneman – guitars
 * Dave Lombardo – drums

title: Haunting the Chapel