rovided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type null $last_used Null. * @type null $last_ip Null. * } * @param string $new_password The generated application password in plain text. * @param array $args { * Arguments used to create the application password. * * @type string $name The name of the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * } */ do_action( 'wp_create_application_password', $user_id, $new_item, $new_password, $args ); return array( $new_password, $new_item ); } /** * Gets a user's application passwords. * * @since 5.6.0 * * @param int $user_id User ID. * @return array { * The list of application passwords. * * @type array ...$0 { * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * } */ public static function get_user_application_passwords( $user_id ) { $passwords = get_user_meta( $user_id, static::USERMETA_KEY_APPLICATION_PASSWORDS, true ); if ( ! is_array( $passwords ) ) { return array(); } $save = false; foreach ( $passwords as $i => $password ) { if ( ! isset( $password['uuid'] ) ) { $passwords[ $i ]['uuid'] = wp_generate_uuid4(); $save = true; } } if ( $save ) { static::set_user_application_passwords( $user_id, $passwords ); } return $passwords; } /** * Gets a user's application password with the given UUID. * * @since 5.6.0 * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @return array|null { * The application password if found, null otherwise. * * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } */ public static function get_user_application_password( $user_id, $uuid ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as $password ) { if ( $password['uuid'] === $uuid ) { return $password; } } return null; } /** * Checks if an application password with the given name exists for this user. * * @since 5.7.0 * * @param int $user_id User ID. * @param string $name Application name. * @return bool Whether the provided application name exists. */ public static function application_name_exists_for_user( $user_id, $name ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as $password ) { if ( strtolower( $password['name'] ) === strtolower( $name ) ) { return true; } } return false; } /** * Updates an application password. * * @since 5.6.0 * @since 6.8.0 The actual password should now be hashed using wp_fast_hash(). * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @param array $update { * Information about the application password to update. * * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * @return true|WP_Error True if successful, otherwise a WP_Error instance is returned on error. */ public static function update_application_password( $user_id, $uuid, $update = array() ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as &$item ) { if ( $item['uuid'] !== $uuid ) { continue; } if ( ! empty( $update['name'] ) ) { $update['name'] = sanitize_text_field( $update['name'] ); } $save = false; if ( ! empty( $update['name'] ) && $item['name'] !== $update['name'] ) { $item['name'] = $update['name']; $save = true; } if ( $save ) { $saved = static::set_user_application_passwords( $user_id, $passwords ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not save application password.' ) ); } } /** * Fires when an application password is updated. * * @since 5.6.0 * @since 6.8.0 The password is now hashed using wp_fast_hash() instead of phpass. * Existing passwords may still be hashed using phpass. * * @param int $user_id The user ID. * @param array $item { * The updated application password details. * * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * @param array $update The information to update. */ do_action( 'wp_update_application_password', $user_id, $item, $update ); return true; } return new WP_Error( 'application_password_not_found', __( 'Could not find an application password with that id.' ) ); } /** * Records that an application password has been used. * * @since 5.6.0 * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @return true|WP_Error True if the usage was recorded, a WP_Error if an error occurs. */ public static function record_application_password_usage( $user_id, $uuid ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as &$password ) { if ( $password['uuid'] !== $uuid ) { continue; } // Only record activity once a day. if ( $password['last_used'] + DAY_IN_SECONDS > time() ) { return true; } $password['last_used'] = time(); $password['last_ip'] = $_SERVER['REMOTE_ADDR']; $saved = static::set_user_application_passwords( $user_id, $passwords ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not save application password.' ) ); } return true; } // Specified application password not found! return new WP_Error( 'application_password_not_found', __( 'Could not find an application password with that id.' ) ); } /** * Deletes an application password. * * @since 5.6.0 * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @return true|WP_Error Whether the password was successfully found and deleted, a WP_Error otherwise. */ public static function delete_application_password( $user_id, $uuid ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as $key => $item ) { if ( $item['uuid'] === $uuid ) { unset( $passwords[ $key ] ); $saved = static::set_user_application_passwords( $user_id, $passwords ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not delete application password.' ) ); } /** * Fires when an application password is deleted. * * @since 5.6.0 * * @param int $user_id The user ID. * @param array $item The data about the application password. */ do_action( 'wp_delete_application_password', $user_id, $item ); return true; } } return new WP_Error( 'application_password_not_found', __( 'Could not find an application password with that id.' ) ); } /** * Deletes all application passwords for the given user. * * @since 5.6.0 * * @param int $user_id User ID. * @return int|WP_Error The number of passwords that were deleted or a WP_Error on failure. */ public static function delete_all_application_passwords( $user_id ) { $passwords = static::get_user_application_passwords( $user_id ); if ( $passwords ) { $saved = static::set_user_application_passwords( $user_id, array() ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not delete application passwords.' ) ); } foreach ( $passwords as $item ) { /** This action is documented in wp-includes/class-wp-application-passwords.php */ do_action( 'wp_delete_application_password', $user_id, $item ); } return count( $passwords ); } return 0; } /** * Sets a user's application passwords. * * @since 5.6.0 * * @param int $user_id User ID. * @param array $passwords { * The list of application passwords. * * @type array ...$0 { * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * } * @return int|bool User meta ID if the key didn't exist (ie. this is the first time that an application password * has been saved for the user), true on successful update, false on failure or if the value passed * is the same as the one that is already in the database. */ protected static function set_user_application_passwords( $user_id, $passwords ) { return update_user_meta( $user_id, static::USERMETA_KEY_APPLICATION_PASSWORDS, $passwords ); } /** * Sanitizes and then splits a password into smaller chunks. * * @since 5.6.0 * * @param string $raw_password The raw application password. * @return string The chunked password. */ public static function chunk_password( #[\SensitiveParameter] $raw_password ) { $raw_password = preg_replace( '/[^a-z\d]/i', '', $raw_password ); return trim( chunk_split( $raw_password, 4, ' ' ) ); } /** * Hashes a plaintext application password. * * @since 6.8.0 * * @param string $password Plaintext password. * @return string Hashed password. */ public static function hash_password( #[\SensitiveParameter] string $password ): string { return wp_fast_hash( $password ); } /** * Checks a plaintext application password against a hashed password. * * @since 6.8.0 * * @param string $password Plaintext password. * @param string $hash Hash of the password to check against. * @return bool Whether the password matches the hashed password. */ public static function check_password( #[\SensitiveParameter] string $password, string $hash ): bool { if ( ! str_starts_with( $hash, '$generic$' ) ) { /* * If the hash doesn't start with `$generic$`, it is a hash created with `wp_hash_password()`. * This is the case for application passwords created before 6.8.0. */ return wp_check_password( $password, $hash ); } return wp_verify_fast_hash( $password, $hash ); } } VARIOUS - ROCKINITIS ELECTRIC BLUES FROM THE ROCK N ROLL ERA - VOL. 3 - STAG-O-LEE - No Hit Records

VARIOUS – ROCKINITIS ELECTRIC BLUES FROM THE ROCK N ROLL ERA – VOL. 3 – STAG-O-LEE

The Rockinitis series showcases electric-guitar blues from the mid-fifties to the early-sixties. Unfettered pleasure in the form of Black dance music. Third time’s the charm as two heavy-hitters join the fray.
Wexford, Ireland’s Bill Kealy has been packing dancefloors for 30 years. He was sucked deep into the Rhythm & Blues vortex after following the trail back from the music of his youth; The Kinks, The Animals and the like. A truly international DJ, hear his sets at The Federal Rhythm & Blues Club in Crewe, For Dancers Only in Dublin, or as a regular guest DJ at top R&B clubs almost everywhere.
Steve Longworth spent his teenage years dancing to Soul at Wigan Casino. He was then drawn towards the R&B and Popcorn sound. Since the early 2000s he’s been running nights all across England’s North – Soulful Shack, Down In The Basement and The Ad-Lib, to name a few. He’s played gritty Blues 45s at clubs from Barcelona to Melbourne and now regularly spins at Sheffield’s mighty Room At The Top.

Side: Bill Kealy
1. Al Simmons – You Ain’t Too Old (Dig) 1957
Let’s boogie! Song singer and drum drummer Al Simmons was joined by guitarist Slim Green and The Cats From Fresno when he cut this fantastic follow-up to the joyous Old Folks Boogie.
2. Eddie Burns – Hello Miss Jessie Lee (DeLuxe) 1953
Lo-fi recording of a high voiced Detroit-based harp and guitar pro. Mississippi style blues which lifts its rhythm from John Lee ‘Sonny Boy’ Williamson’s Good Morning, School Girl.
3. Skip Robinson – I Just Can’t Wait (Chris) 1962
Charles ‘Skip’ Robinson’s big voice growls and hollers Screamin’ Jay Hawkins-esque lyrics over a Green Onions rhythm. The first of only three records from the keyboardist and singer.
4. The Nightriders – Looking For My Baby (Sue) 1959
Massive club fave and it only takes one listen to hear why. Take a loose, jugging rhythm, snappy beat and honking sax, add Mel Smith’s gravelly Yah-Yahs then ALAKAZAM it’s party time.
5. Roy Brown – She’s Gone Too Long (King) 1955
The dancefloor filling Roy Brown (and His Mighty Mighty Men) sound has a beat that’s hard to beat and this knockout selection is no exception. Pure class from the Good Rockin’ Man.
6. Peppermint Harris – I Cry For My Baby (Aladdin) 1952
Forlorn lyrics from a singer with a voice so deep you can just dive right in. If you haven’t been so romantically distraught that your mutt damn dies, you don’t know the blues.
7. Ulie & The Uniques – You Don’t Love Me (Uni) 1961
A merry melody belies a mournful tale once again. Relatively unknown, this swinger was a former Bill Kealy cover-up. Completely different to the Willie Cobb record of the same name.
8. Junior Wells – Lawdy Lawdy (States) 1954
Chicago blues blaster. Muddy Waters plays one of the guitars and Willie Dixon’s on bass, naturally. Not to mention the heavy lashings of harmonica from the main man himself. Woah Lord!

Side: Steve Longworth
1. Little Walter – I Hate To See You Go (Checker) 1955
Just a straight banger from another Chicago mouth harp master. Insanely good harmonica sound, Bo Diddley’s on guitar (and you can tell), plus Willie Dixon slaps the bass yet again.
2. Dusty Brown – Well, You Know (Bandera) 1959
Twelve bar blues by a musician who took the well-travelled route from Mississippi to Chicago. The b-side to the second of only two singles Dusty Brown aka C.W. Triplett ever released.
3. Ace Holder – Sorry I Had To Leave (Movin’) 1962
In 1957, aged 20, harmonica in hand, Albert ‘Ace’ Holder left Alabama for Los Angeles. His soulful, southern voice is the star of this show. Wailing at times, he sings of love lost.
4. Lynn Johnson – Wicked Woman (My Time) 1962
Smooth and jazzy R&B in a top-notch Ray Charles kind of way. Just like the last track, this was recorded in L.A. and released in ‘62. Don’t be confused, Lynn can be a man’s name too.
5. Detroit Junior – Too Poor (Chess) 1960
Despite having the exact same label and catalog number, this is from a rare pressing containing a different and superior song to the one widely known as Too Poor by Detroit Junior.
6. Jimmy Anthony – Eternal Thing (Howard) 1961
Even a gutbucket blues comp needs songs that are positive about love. The Jap Curry Blazers, led by Virginian saxman Clarence ‘Jap’ Curry, play on this gospel-inspired R&B belter.
7. Magic Sam – All My Whole Life (Cobra) 1958
Otherworldly guitar greatness from yet another Chicago blues superstar. Good Rocking Sam was taken so Samuel Maghett switched his names round and became Magic Sam. Guess who’s on bass.
8. Poppa Hop – My Woman Has A Black Cat Bone (Ivory) 1960
Sounds like Poppa Hop Wilson’s also got a black cat bone; he’s using it for a slide. The lap-steel sliding Texan influenced a few of the Lone Star State’s more famous axe-wielders.

Share this:

£ 18.00

Add to Basket

Release Date:

Format: Vinyl Album

All music: Rhythm & Blues

Secret Link